Buscar

Vetores, Cadeias de Caracteres e Matrizes

Prévia do material em texto

Matrizes
• Vetor
• Cadeia de Caracteres
• Matriz
Roteiro
Laboratório de Programação I - Glaudiney Mendonça
• Matriz unidimensional
• Coleção de variáveis de um mesmo tipo que são 
referenciadas por um nome comum
• Um elemento específico é acessado por um 
índice (posição)
▫ Faz tudo que uma variável tradicional pode fazer
Vetor
Laboratório de Programação I - Glaudiney Mendonça
• Possuem posições contíguas na memória
Vetor
1000
1001
1002
1003
1004
A[5]
Laboratório de Programação I - Glaudiney Mendonça
• Forma Geral:
▫ tipo nome[TAMANHO]
• Exemplo
▫ double balance[100];
▫ char p[10];
• O primeiro elemento possui índice 0
Vetor
Laboratório de Programação I - Glaudiney Mendonça
• Geralmente utiliza-se um laço
int x[10];
for(i=0;i<=9;i++)
{
... x[i];
}
Vetor
Percorrendo
Laboratório de Programação I - Glaudiney Mendonça
main()
{
int x[100];
int t;
for(t=0;t<100;t++)
x[t] = t;
}
Vetor
Exemplo
Laboratório de Programação I - Glaudiney Mendonça
int x[5] = {4, 35, 8, 7, 1};
char vogais[5]= {'a','e','i','o','u'};
• Não precisa informar o tamanho
float notas[] = {5, 8, 10};
Vetor
Inicializando
Laboratório de Programação I - Glaudiney Mendonça
• Na verdade é um vetor de caracteres
• O último caractere de uma cadeia é o nulo (\0)
• Exemplo:
▫ char str[11];
▫ Guarda 10 caracteres + \0
• Para receber uma cadeia do usuário
▫ gets(str);
• Para apresentar uma cadeia na tela
▫ printf("%s",str);
Cadeia de caracteres
Laboratório de Programação I - Glaudiney Mendonça
#include <stdio.h>
main()
{
char s[101];
printf("Escreva uma frase de 
até 100 elementos:\n");
gets(s);
}
Cadeia de caracteres
Exemplo
Laboratório de Programação I - Glaudiney Mendonça
• Pode se utilizar um laço
▫ Porém, no se deve percorrer a cadeia toda, apenas 
o que foi inserido.
char s[101];
for( int i=0; s[i]!='\0'; i++ )
Cadeia de caracteres
Percorrendo
Laboratório de Programação I - Glaudiney Mendonça
• Biblioteca
▫ #include <string.h>
• strcpy(s1,s2);
▫ Copia s2 em s1
▫ Não se consegue copiar fazendo atribuição
 s1 = s2;
 Copia-se apenas o endereço do vetor
Cadeia de caracteres
Funções
Laboratório de Programação I - Glaudiney Mendonça
• strcmp(s1,s2);
▫ Retorna 0, se forem iguais; negativo, se s1 < s2; e 
positivo, se s1 > s2
▫ Não se consegue comparar com ==
 if (s1 == s2)
 Compara-se apenas os endereços de memória
Cadeia de caracteres
Funções
Laboratório de Programação I - Glaudiney Mendonça
• strcat(s1,s2);
▫ Concatena s2 ao final de s1
• strlen(s1);
▫ Retorna o tamanho de s1
▫ Não conta com o \0
Cadeia de caracteres
Funções
Laboratório de Programação I - Glaudiney Mendonça
char s[101] = {'L','a','b‘,'\0'};
ou
char s[101] = "Lab";
Cadeia de caracteres
Inicializando
Laboratório de Programação I - Glaudiney Mendonça
• Matriz multidimensional
▫ Duas dimensões
 int d[10][20];
▫ Três dimensões
 int d[10][20][30];
Matriz
Laboratório de Programação I - Glaudiney Mendonça
• Geralmente utiliza-se um laço para cada 
dimensão
int x[10][10];
for(int i=0; i<=9; i++)
{
for(int j=0; j<=9; j++)
{
... x[i][j];
}
}
Matriz
Percorrendo
Laboratório de Programação I - Glaudiney Mendonça
main()
{
int i, j, x[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
x[i][j] = (i*4)+j+1;
}
Matriz
Exemplo
Laboratório de Programação I - Glaudiney Mendonça
int x[2][3] = {4, 35, 8, 7, 1, 7};
ou
int x[2][3] = {{4, 35, 8},{7, 1, 7}};
Matriz
Inicializando
Laboratório de Programação I - Glaudiney Mendonça

Continue navegando