Buscar

Aula - 04 - Vetores_2015-2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução à Linguagem de 
Programação
Prof. George Candeia
Ciência da Computação
Vetores
Valores 4 5 7 6 8 2 1 9 8 3 5 6 4 7 2 4
Índices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Um vetor, em C, é uma variável que é dividida em várias partes.
Cada parte possui um valor e um índice associado. O índice
funciona como o endereço ou a identificação de cada parte
dessa variável.
Podemos imaginar um vetor como um conjunto de valores de
um mesmo tipo. Esse conjunto possui um nome que é
compartilhado por todas as partes do conjunto. O que diferencia
cada parte do conjunto é o seu índice!
3
Vetores
Introdução
Um vetor, é uma estrutura de dados composta e homogênea,
pois armazena mais de um valor e todos são do mesmo tipo.
O acesso a cada parte do vetor é feito de forma independente,
pelo índice correspondente à posição que se deseja acessar.
4
Vetores
Introdução
Valores 4 5 7 6 8 2 1 9 8 3 5 6 4 7 2 4
Índices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Cada parte do vetor ocupa uma posição consecutiva da memória
do computador.
5
Vetores
Introdução
Valores 4 5 7 6 8 2 1 9 8 3 5 6 4 7 2 4
Índices 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Imaginemos que em um programa, precisamos armazenar as
idades de 10 pessoas. Poderíamos criar 10 variáveis do tipo int
ou criar um vetor de tipos inteiros. O uso do vetor deixa o código
mais organizado, além de diminuir o número de declarações de
variáveis. Com o vetor, apenas uma variável é declarada.
Nome da variável: idades;
Tipo da variável: Inteiro;
6
Vetores
Exemplo
Valores 18 17 25 32 28 22 19 23 27 42
Índices 0 1 2 3 4 5 6 7 8 9
A sintaxe para a declaração de um vetor em C é:
tipo nome_da_variável[tamanho];
Onde,
tipo: tipo dos dados que serão armazenados nas posições do
vetor;
nome_da_variavel: nome do vetor que será compartilhado por
cada parte;
tamanho: quantidade de partes (posições) do vetor.
7
Vetores
Sintaxe
Mas qual o tamanho máximo de posições que um vetor pode
possuir?
Vai depender da arquitetura da máquina e da quantidade de
memória disponível.
Exemplo: Um computador de 32 bits, consegue endereçar dados
de até 232 bytes, ou seja, 4GBytes, mas devemos ter cuidado!
Para endereçar uma quantidade tão grande de informação,
precisamos ter memória RAM e/ou área de Swap para isso!
Muito dificilmente, iremos precisar armazenar tanta
informação em um único vetor!!!
8
Vetores
Sintaxe
E qual o tamanho mínimo de posições que um vetor pode
possuir?
Devemos sempre observar que um vetor de apenas uma posição
é igual a uma variável comum, ou seja, não faz sentido declarar
um vetor com menos de 2 posições!
Na declaração de um vetor podemos não preencher o tamanho!
Com isso forçaremos o compilador a utilizar alocação dinâmica
de memória!
9
Vetores
Sintaxe
Voltando ao primeiro exemplo onde desejávamos declarar um
vetor do tipo inteiro para armazenar as idades de 10 pessoas.
Como ficaria essa declaração em C?
Dessa forma, teremos um vetor com 10 posições armazenando
valores do tipo int.
10
Vetores
Exemplo
A inicialização de vetores possui algumas particularidades.
Para inicializar um vetor estático, ou seja, com uma quantidade
de posições definidas em sua declaração, é necessário preencher
o valor das posições desejadas obedecendo à seguinte sintaxe:
Após a declaração e inicialização do vetor, sua estrutura de
dados ficaria da seguinte forma:
11
Vetores
Inicialização
Valores 18 17 25 32 28 22 19 23 27 42
Índices 0 1 2 3 4 5 6 7 8 9
O que aconteceria se a inicialização fosse feita da seguinte
forma?
Como ficaria sua estrutura de dados?
12
Vetores
Inicialização
Valores 18 17 25 32 28 22 19 ? ? ?
Índices 0 1 2 3 4 5 6 7 8 9
Um vetor pode ainda ser declarado sem nenhum tamanho,
porém, se for inicializado, o compilador irá reservar a quantidade
de posições utilizadas durante a inicialização.
Exemplo:
Após a declaração e inicialização do vetor, quantas posições ele
teria? Como ficaria sua estrutura de dados?
13
Vetores
Inicialização
Valores 18 17 25 32
Índices 0 1 2 3
Após um vetor ter sido declarado e devidamente inicializado,
como fazemos para acessar cada elemento do vetor?
Os elementos do vetor podem ser acessados por seu índice!
Exemplo:
Como fazer para imprimir as posições 2, 3 e 6?
Quais valores seriam impressos?
14
Vetores
Acesso
Valores 18 17 25 32 28 22 19 23 27 42
Índices 0 1 2 3 4 5 6 7 8 9
Lembrando que independente do tamanho de um vetor, ele
sempre começa pela posição zero!
Como ficaria um código para exibir todos os elementos do vetor?
Poderíamos utilizar um laço varrendo cada elemento do vetor:
15
Vetores
Acesso
Observem a sua estrutura de dados e vejam como ficaria a saída:
16
Vetores
Acesso
Valores 18 17 25 32 28 22 19 23 27 42
Índices 0 1 2 3 4 5 6 7 8 9
Um vetor não precisa, obrigatoriamente, ser inicializado. Ele
pode ser preenchido à medida que o programador julgar
necessário.
Para atribuir um valor a uma determinada posição do vetor,
utilizamos o índice da posição desejada.
Exemplo: Para atribuir o valor 50 à posição 5, o valor 30 à
posição 0 e o valor 25 à posição 7 de um vetor de 8 posições:
17
Vetores
Atribuição ou preenchimento
Após a atribuição, como ficaria a estrutura de dados do vetor?
18
Vetores
Atribuição ou preenchimento
Valores 30 ? ? ? ? 50 ? 25
Índices 0 1 2 3 4 5 6 7
Outra forma de atribuição seria utilizando a função scanf():
A diferença para a forma mostrada anteriormente é que com a
função scanf(), as posições 5, 0 e 7 são preenchidas com o que
for digitado pelo usuário!
19
Vetores
Atribuição ou preenchimento
Como ficaria o código para armazenar a idade de 5 pessoas sem
utilizar vetores?
Seria simples aumentar o número de pessoas para 200?
20
Vetores
Exemplo
Como ficaria o código para armazenar a idade de 5 pessoas
utilizando vetores?
Seria simples aumentar o número de pessoas para 200?
21
Vetores
Exemplo
Uma string, em C, é um vetor de caracteres com o último
caractere contendo o terminador nulo ‘\0’.
Exemplo: As estruturas de dados das strings “Cantor” e
“Comediante” são:
“Cantor”
“Comediante”
22
Strings
Introdução
Valores ‘C’ ‘a’ ‘n’ ‘t’ ‘o’ ‘r’ ‘\0’
Índices 0 1 2 3 4 5 6
Valores ‘C’ ‘o’ ‘m’ ‘e’ ‘d’ ‘i’ ‘a’ ‘n’ ‘t’ ‘e’ ‘\0’
Índices 0 1 2 3 4 5 6 7 8 9 10
A declaração de uma string é feita do mesmo modo que se
declara um vetor, porém, o tipo de dados deverá ser char, pois se
trata de um vetor de caracteres.
A inicialização de uma string pode ser feita passando cada
elemento do vetor ou diretamente uma string.
Exemplos:
23
Strings
Declaração e Inicialização
Para capturar e/ou exibir uma string, podemos utilizar as funções
básicas de entrada e saída de dados. Vejamos como elas se
comportam com as strings:
Funções de entrada:
24
Strings
Captura e Exibição
Para capturar e/ou exibir uma string, podemos utilizar as funções
básicas de entrada e saída de dados. Vejamos como elas se
comportam com as strings:
Funções de saída:
25
Strings
Captura e Exibição
A biblioteca padrão C oferece várias funções para a manipulação
de strings que permitem ao usuário:
• Ler o tamanho;
• Comparar;
• Concatenar;
• Copiar;
• Converter para maiúscula e minúscula;
• Entre outras...
26
Strings
Funções de Manipulação
int strlen(char *str)
A função strlen() retorna a quantidade de caracteres
encontrados antes do terminador nulo ‘\0’. Ela não considera o
‘\0’.
Exemplo:
27
Strings
Funções de Manipulação
int strcmp(char *str1, char *str2)
A função strcmp() retorna 0 se as strings forem iguais, -1 se str1for menor que str2 e 1 se str1 for maior que str2.
Obs.: A função strcmp() considera a ordem alfabética de cada
caractere da string para comparar o tamanho!
Exemplo:
Resultado: 1 28
Strings
Funções de Manipulação
int strcmp(char *str1, char *str2)
Resultado: 0
Resultado: -1
29
Strings
Funções de Manipulação
char *strcpy(char *dest, char *orig)
A função strcpy() copia o conteúdo da string de origem para a
origem de destino.
Obs.: A string que irá receber o conteúdo deverá ser grande o
suficiente para armazenar o conteúdo que irá receber!!!
Exemplo:
str1: otorrinolaringologista
str2: otorrinolaringologista 30
Strings
Funções de Manipulação
char *strcat(char *str1, const char *str2)
A função strcat() concatena uma cópia do conteúdo de str2.
Obs.: O terminador nulo ‘\0’ de str1 é substituído pelo primeiro
caractere de str2 e um novo ‘\0’ é adicionado a str1!
Exemplo:
str1: Fulano é um comediante
31
Strings
Funções de Manipulação
Faça um programa em C que leia duas strings e:
1 – Exiba o tamanho das strings lidas;
2 – Compare as duas strings, informando qual é a maior;
3 – Exiba somente as vogais de cada string;
4 – Mostre o resultado da concatenação entre as strings;
5 – O programa só deverá ser encerrado se uma das strings for
“sair”.
32
Strings
Exercício
Faça um programa em C que execute o teste de palíndromo.
O programa deverá ler um texto e informar se é ou não um
palíndromo.
Exemplo de palíndromos:
“Assam a massa”
“Lá tem metal”
“socorram-me, subi no onibus em marrocos”
“Maria, Selena e Anele saíram”
“Morram após a sopa marrom”
33
Strings
Exercício

Continue navegando