




Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Vetor e Matriz
Tipologia: Notas de estudo
1 / 8
Esta página não é visível na pré-visualização
Não perca as partes importantes!





As matrizes em geral são caracterizadas por se tratarem de uma única variável de um determinado tamanho que
armazena várias informações do mesmo tipo. Essas informações são gravadas na memória seqüencialmente e são
referenciadas através de índices. As matrizes podem ser tanto unidimensionais (vetores) como multidimensionais.
São matrizes de uma única dimensão. Essas matrizes também são chamadas de vetores. A declaração de vetores
em C deve obedecer a seguinte sintaxe:
Tipo nome_vetor[tamanho];
O tipo deve ser especificado de acordo com o tipo de informação que será armazenado no vetor (ex. int float,
char,...). E o tamanho representa a quantidade de elementos que este vetor irá conter. É importante dizer que na
linguagem C as matrizes começam pelo índice 0 que guarda o primeiro elemento da matriz. Para entender melhor,
considere que seja necessário declarar um vetor do tipo inteiro que contenha 10 elementos. Isto é feito da seguinte
forma:
int vetor_exemplo[10];
Isso por que a matriz “vetor_exemplo” vai de 0 a 9, ou seja, contém 10 elementos. Também é possível inicializar o
vetor no momento de sua declaração. Para isso veja a sintaxe abaixo:
Tipo nome_vetor[tamanho]={lista_de_valores};
Sendo que todos os elementos da lista de valores devem ser separados por vírgula e serem todas do mesmo tipo de
dados especificado. A seguir temos a declaração do “vetor_exemplo” com os valores atribuídos.
int vetor_exemplo[10]={0,1,2,3,4,5,6,7,8,9};
Exemplo de um programa completo utilizando vetores e outros conceitos estudados até o momento.
#include<stdio.h> #include<conio.h> int main() { int vetor1[5]={1,2,3,4,5}; //declaração e inicialização do vetor int vetor2[5]={6,7,8,9,0}; //declaração e inicialização do vetor int vetorSoma[5]; //declaração do vetor que armazenará o resultado da soma dos dois vetores int x; printf("Programa que soma os dois vetores abaixo:\n"); printf("vetor1={1,2,3,4,5}\n"); printf("vetor2={6,7,8,9,0}\n"); printf("\nVetor resultante da soma:\n"); for (x=0; x<5; x++) { vetorSoma[x]=vetor1[x]+vetor2[x]; //soma os valores e armazena no vetorSoma printf("vetorSoma[%d]: %2d\n",x,vetorSoma[x]); //exibe na tela os valores armazenados no vetorSoma } //fim do for
getch(); return 0; } //fim do programa
Os vetores são muito usados para criar uma string de caracteres, pois em C não existe nenhum tipo de dados para
definir uma string. A declaração de um vetor contendo uma string sempre deve ser maior que o número de
caracteres, pois o compilador acrescenta automaticamente no final da string um espaço nulo que indica o seu
término. Este segundo exemplo é muito simples, mostra apenas como podem ser feitas a declaração e inicialização
de um vetor de string.
#include<stdio.h> #include<conio.h> int main() { char c1 = 'a'; char vetor1[30]="Aprendendo a mexer com string\n"; /Imprimindo os dados na tela/ printf("O tipo de dado char guarda apenas um caractere\n"); printf("A variavel c1 do tipo char contem o caractere: %c\n",c1); printf("\n"); printf("Para trabalhar com uma string deve ser declarado um vetor do tipo char"); printf("\nO vetor do tipo char contem a string: %s",vetor1); getch(); return 0; } /fim do programa/
São matrizes linha-coluna, onde o primeiro índice indica a linha e o segundo a coluna. Esse tipo de matriz é
considerado o caso mais simples de matrizes multidimensionais. Veja o programa abaixo:
#include<stdio.h> #include<conio.h> int main() { int mat[2][2]; float det; int x,y; printf("Este programa serve para cadastrar os dados na matriz e exibir o dobro de cada elemento"); printf("\n\nEntre com os valores da matriz:\n"); for(x=0;x<2;x++) { for(y=0;y<2;y++) { printf("mat[%d][%d]=",x+1,y+1); scanf("%d",&mat[x][y]);
int x,y; printf("\n Imprimindo a matriz mat1 cujo o tamanho foi especificado:\n"); for(x=0;x<2;x++) { for(y=0;y<2;y++) { printf("\n mat1[%d][%d]=%d",x,y,mat1[x][y]); } /fim do for/ } /fim do for/ printf("\n\n Imprimindo a matriz mat2 cujo o tamanho nao foi especificado:\n"); for(x=0;x<2;x++) { for(y=0;y<2;y++) { printf("\n mat2[%d][%d]=%d",x,y,mat2[x][y]); } /fim do for/ } /fim do for/ getch(); return 0; } /fim do programa/
Do mesmo modo verifica-se através da saída abaixo que tanto a matriz mat1 como a matriz mat2, obtiveram os
mesmos resultados embora tenham sido declaradas de maneira diferente.
Para criar um vetor de strings , deve-se utilizar uma matriz bidimensional de caracteres, onde o tamanho do índice
esquerdo determina o número de strings e o tamanho do índice direito especifica o comprimento máximo de cada
string.
Exemplo : char palavra [3][8];
0 1 2 3 4 5 6 7 0 ‘U’ ‘N’ ‘I’ ‘P’ NULL lixo lixo lixo (^1) ‘C’ ‘I’ ‘E’ ‘N’ ‘C’ ‘I’ ‘A’ NULL 2 ‘2’ ‘0’ ‘0’ ‘9’ NULL lixo lixo lixo
Cria um vetor com 3 strings com 7 caracteres + '\0' (NULL) cada uma. Para acessar uma string específica deve-se
especificar apenas o índice da linha onde se encontra a String, ou seja, palavra[0], palavra [1] ou palavra [2].
printf(“%s”, palavra[0]); // exibirá UNIP
printf(“%s”, palavra[1]); // exibirá CIENCIA
printf(“%s”, palavra[2]); // exibirá 2009
Observação : Pode-se acessar também qualquer caractere de qualquer uma das strings , isto é feito utilizando os
dois índices, como por exemplo:
printf(“%c”, palavra[0][3]); // exibirá o caractere ‘P’
printf(“%c”, palavra[1][6]); // exibirá o caractere ‘A’
printf(“%c”, palavra[0][2]); // exibirá o caractere ‘2’
As funções strcpy , strcmp , strcat são necessárias, pois uma string nada mais é do que um vetor de caracteres, ou
seja, não se pode atribuir vários valores (ao mesmo tempo) para os elementos de um vetor. Isto só pode ser feito
quando o vetor é declarado e inicializado ou um de cada vez.
Exemplo : char s[] = “MICRO”; /* correto */
ou
s[0] = ‘M’; /* correto – elemento por elemento */
s[1] = ‘I’;
s[2] = ‘C’;
s[3] = ‘R’;
s[4] = ‘O’;
s[5] = NULL;
ou
s = “MICRO”; /* incorreto – erro GRAVE em C */
A função strcpy (cópia de string) permite copiar uma string para outra ou inicializar uma string.
Sintaxe: strcpy (destino, origem);
O programa abaixo mostra como copiar caracteres para uma string.
#include <stdio.h> #include <conio.h> #include <string.h> int main() { char msg1[] = "Primeira Mensagem \n"; //declaração e inicialização da string char msg2[20]; strcpy(msg2, “Segunda Mensagem”); printf("Conteúdo da variavel msg1: %s",msg1);
int main(void) { char s1[]="Gua", s2[]="ra",s3[]="ni"; char sr[20]; printf("%s\n",s1); printf("%s\n",s2); printf("%s\n",s3); strcpy(sr,s1); // copia o conteúdo de s1 em sr strcat(sr,s2); // concatena o conteúdo de s2 em sr strcat(sr,s3); // concatena o conteúdo de s3 em sr strcat(sr, " Campeao"); // concatena a palavra Campeao em sr printf("\n%s",sr); getch(); return 0; }
A função strlen (comprimento de uma string) retorna o comprimento de uma string , ou seja, a quantidade de
caracteres que a string possui no momento.
Observação : O NULL não é contado.
Sintaxe: strlen (string);
O programa imprime na tela a quantidade de caracteres de uma variável string, neste caso, a variável nome.
#include <stdio.h> #include <conio.h> #include <string.h> int main() { char nome[50]; printf("Digite o seu nome: "); fflush(stdin); gets(nome); printf("%s, seu nome tem %d caracteres\n", nome, strlen (nome)); getch(); return 0; }
A função strchr verifica se um caracter ( chr ) pertence a uma string ( str ).
Sintaxe: int strchr (const char *s, char ch);
O programa imprime na tela o número de caracteres de um nome.
#include <stdio.h> #include <conio.h>
#include <string.h> int main() { char nome[50]; char ch; do { printf("\nQual o seu nome: "); fflush(stdin); gets(nome); printf("Seu nome tem %d caracteres\n", strlen(nome)); printf("Continuar [S]im ou [N]ão ?"); ch = getch(); //armazena o caractere digitado na variável ch } while (!strchr("Ss",ch)); //verifica se o conteudo da variavel ch eh 'S' ou 's' return 0; }