Vetores e matrizes
description
Transcript of 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];
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 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
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
#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