150 likes | 276 Views
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.
E N D
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 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];
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]
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; }
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(); }
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; }
Matrizes : inicialização int matriz_id [3][3] = { 1, 0, 0, 0, 1, 0, 0, 0, 1 };
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;
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.
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.
A diretiva define A diretiva #define tem a seguinte forma geral: #define nome_da_macro sequência_de_caracteres • Exemplo: # define TAMANHO 10
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:
Funções de cadeiaDescriçã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
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"); }
Exemplo Um exemplo que mostra um programa que lê uma matriz de três linhas e cinco colunas e imprime os valores #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"); } }