Vetores e matrizes

15
Vetores e matrizes Vetores nada mais são que matrizes unidimensionais. Estruturas de dados muito utilizadas, não permitem que seus elementos sejam de tipos diferentes. Para se declarar um vetor podemos utilizar a seguinte forma geral: tipo_da_variável nome_da_variável [tamanho];

description

Vetores e matrizes. Vetores nada mais são que matrizes unidimensionais. Estruturas de dados muito utilizadas, não permitem que seus elementos sejam de tipos diferentes.   Para se declarar um vetor podemos utilizar a seguinte forma geral: tipo_da_variável nome_da_variável [tamanho];. Vetores. - PowerPoint PPT Presentation

Transcript of Vetores e matrizes

Page 1: Vetores e matrizes

Vetores e matrizes

Vetores nada mais são que matrizes unidimensionais. Estruturas de dados muito utilizadas, não permitem que seus elementos sejam de tipos diferentes.  

    Para se declarar um vetor podemos utilizar a seguinte forma geral:

 tipo_da_variável nome_da_variável [tamanho];

Page 2: Vetores e matrizes

Vetores

  Quando o C vê uma declaração como esta ele reserva um espaço na memória suficientemente grande para armazenar o número de células especificadas em tamanho. Por exemplo, se declararmos:

int exemplo [20];

Page 3: Vetores e matrizes

Vetores

  O compilador irá reservar 2 x 20=40 bytes. Estes bytes são reservados de maneira contígua. Para acessá-los vamos escrever:  

                exemplo[0]                exemplo[1]

.:

exemplo [19]

Page 4: Vetores e matrizes

Exemplos

int main () {

int count;

char expressao [5] = { 'A', 'L', 'U', 'N', 'O' };

for (count = 0 ; count < 5; count++) {

printf("%c ", expressao[count]);

}

getch();

return 0;

}

Page 5: Vetores e matrizes

Exemplo#include <stdio.h>#include <stdlib.h>

int main(int argc, char *argv[]){ char mes[12][10]; int x; for (x = 1; x <= 2 ; x++)

scanf("%s",&mes[x]);

for (x = 1; x <= 2 ; x++)printf("o mes %d é %s.\n",x,mes[x]);getch();

}

Page 6: Vetores e matrizes

Exemplo#include <stdio.h>#include <stdlib.h>

int main () { int count; char frase[8] = "TESTE C"; char expressao [5] = { 'A', 'L', 'U', 'N', 'O' }; for (count = 0 ; count < 5; count++) { printf("%c ", expressao[count]); } printf("\n"); for( count =0; count < 8; count ++){ printf("%c ", frase[count]); } getch(); return 0;}

Page 7: Vetores e matrizes

Matrizes : inicialização

int matriz_id [3][3] = { 1, 0, 0, 0, 1, 0, 0, 0, 1 };

Page 8: Vetores e matrizes

Strings

Pode-se declarar String em vetores facilmente.

frase[ ] = “TESTE”;

Caso se determine o número de posições do vetor deve-se considerar o terminado nulo.

frase[8] = “TESTE C”

Na memória estará gravada a sequência:

´T, ´E, ´S, ´T, ´E, ´ , ´C, 0x00;

Page 9: Vetores e matrizes

Diretivas de pré-compilação

O pré-processador C é um programa que examina o programa fonte escrito em C e executa certas modificações nele, baseado nas diretivas de pré-compilação. Essas diretivas são comandos que não geram código, sendo dirigidos ao pré-processador, que é chamado pelo compilador antes do processo de compilação propriamente dito.

Page 10: Vetores e matrizes

A diretiva include:

• A diretiva include:

#include "nome_do_arquivo"

Observe que não há ponto e vírgula após a diretiva de compilação.

Page 11: Vetores e matrizes

A diretiva define

A diretiva #define tem a seguinte forma geral:

#define nome_da_macro sequência_de_caracteres

• Exemplo:

# define TAMANHO 10

Page 12: Vetores e matrizes

• Em C não há tipo cadeia e portanto conjuntos de caracteres teriam de ser tratados como conjuntos de números inteiros, por exemplo. Para facilitar a programação foram criadas algumas funções para manipular cadeias. As funções mais comuns são as seguintes:

Page 13: Vetores e matrizes

Funções de cadeia Descrição

• strcat(dest, orig) Concatena cadeia origem ao final de destino strncat (dest, orig, n) Concatena cadeia orig ao final de dest, usando no máximo n caracteres de orig.

• strcmp (str1, str2) Compara os dois cadeias. Retorna zero se iguais, menor que 0 se str1 < str2, maior que 0 se str1 > str2 strcmpi (str1, str2) Compara os dois cadeias sem levar em conta maiúsculas e minúsculas

• strlen(str) Calcula o comprimento da cadeia sem o caracater nulo.

• strlwr(str) Converte cadeia para minúsculas • strupr(str) Converte cadeia para maiúsculas • strcpy(dest, orig) Copia cadeia origem para destino

Page 14: Vetores e matrizes

Exemplo#include <cstdlib>#include <iostream>#include <stdio.h>

int main( void ) {char c, nome[40]; char sobrenome[40]; int i; printf("Entre com um nome "); scanf("%s", nome); getchar(); puts(nome); printf("Entre com um sobrenome "); scanf("%s", sobrenome); getchar(); puts(nome); strcat(nome, " "); strcat(nome, sobrenome); puts(nome); printf("Qual caracter? "); c = getchar();

for (i=0; i<strlen(nome); i++) if (c == nome[i])

printf("%d\n", i); system("PAUSE");

}

Page 15: Vetores e matrizes

Exemplo

#define DIML 3 #define DIMC 5 #include<stdio.h> int main( void ) {

int i, j; int matriz[DIML][DIMC]; for (i=0; i<DIML; i++)

for (j=0; j<DIMC; j++) scanf("%d", &matriz[i][j]); for (i=0; i<DIML; i++) { for (j=0; j<DIMC; j++) printf("%4d", matriz[i][j]); printf("\n");

} }

Um exemplo que mostra um programa que lê uma matriz de três linhas e cinco colunas e imprime os valores