Baixe o app para aproveitar ainda mais
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
Compartilhar