A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

ICC – Matrizes Jorge Macêdo. ICC 2008-1 - Jorge Macêdo2 Matrizes Tipo de dado que representa variáveis pelo mesmo nome. Sintaxe: tipo nome[tamanho]; Variáveis.

Apresentações semelhantes


Apresentação em tema: "ICC – Matrizes Jorge Macêdo. ICC 2008-1 - Jorge Macêdo2 Matrizes Tipo de dado que representa variáveis pelo mesmo nome. Sintaxe: tipo nome[tamanho]; Variáveis."— Transcrição da apresentação:

1 ICC – Matrizes Jorge Macêdo

2 ICC Jorge Macêdo2 Matrizes Tipo de dado que representa variáveis pelo mesmo nome. Sintaxe: tipo nome[tamanho]; Variáveis são alocadas seqüencialmente na memória. Endereço mais baixo corresponde ao primeiro elemento (índice 0). C não possui o tipo string, deve-se utilizar uma matriz de char.

3 ICC Jorge Macêdo3 Dimensões da Matriz Unidimensional Tamanho representa o número de elementos; O índice da matriz varia de 0 a [tamanho-1]; tipo nome[tamanho]; Bidimensional As duas dimensões são respectivamente as linhas e colunas da matriz; tipo nome[tamanho1][tamanho2];

4 ICC Jorge Macêdo4 Exemplo main(){ int nota[5], i, soma; for(i = 0; i < 5; i++){ printf(Digite a nota %d:\n,i); scanf(%d\n, ¬a[i]); } for(i = 0; i < 5; i++) soma += nota[i]; printf(Media = %d\n, soma/5); }

5 ICC Jorge Macêdo5 Verificação de Limites A linguagem C não faz verificação de automática de limites das matrizes Erro comum de programação. Deve ser realizado dentro do programa.

6 ICC Jorge Macêdo6 Exemplo main(){ int nota[5], i, soma; for(i = 0; i < 10; i++){ printf(Digite a nota %d:\n,i); scanf(%d\n, ¬a[i]); } for(i = 0; i < 5; i++) soma += nota[i]; printf(Media = %d\n, soma/5); } Tamanho da matriz é cinco, neste for, a contagem vai até dez. Logo, o limite da matriz foi ultrapassado.

7 ICC Jorge Macêdo7 Matrizes Estáticas Valores atribuídos à matriz podem ser inicializados no momento da declaração da mesma (variáveis estáticas) main(){ static int nota[5] = {8,9,4,5,7}, i; for(i = 0; i < 5; i++) printf(Nota %d: %d\n, i, nota[i]); }

8 ICC Jorge Macêdo8 Matrizes Multidimensionais C permite matrizes com mais de duas dimensões Sitnaxe tipo nome [tamanho1][tamanho2]...[tamanhoN]; Matrizes com três ou mais dimensões são pouco utilizadas. Ocupam muita memória Demora no cálculo do índice

9 ICC Jorge Macêdo9 Matrizes de char (strings) Em C uma string é um vetor de char com \0 no final É preciso declarar um vetor de caracteres com um caractere a mais que maior tamanho da string. As funções de manipulação de string armazenam e manipulam automaticamente com o \0 Uma constante string fica entre aspas duplas- Ex: printf(%s, Teste); Strings também podem ser armazenadas estaticamente.

10 ICC Jorge Macêdo10 Exemplo main(){ static char st[] = testando; int i; for(i = 0; st[i]; i++) putchar(st[i]); putchar(\n); }

11 ICC Jorge Macêdo11 Funções de manipulação de string Leitura – gets() gets(nome_da_string) ; Escrita – puts() puts(nome_da_string) ; Cópia – strcpy() strcpy(str_de_destino, str_de_origem) ; Concatenação – strcat() strcat(str_de_destino, str_de_origem) ; Comparação – strcmp() strcmp(string1, string2) ; Retorna 0 se as strings forem iguais. Tamanho – strlen() strlen(nome_da_string) ;

12 ICC Jorge Macêdo12 Exemplo – gets() main(){ char str[100]; printf(Digite seu nome: ); gets(str); printf(\n\nOla, %s., str); }

13 ICC Jorge Macêdo13 Exemplo – strcpy() #include main(){ char s1[20], s2[20], s3[20]; printf(Entre com uma string: ); gets(s1); strcpy(s2, s1); // copia s1 em s2 // Copia: Voce digitou a string. em s3 strcpy(s3, Voce digitou a string.); printf(%s %s, s3, s2); }

14 ICC Jorge Macêdo14 Exemplo strcat() #include main(){ char s1[20], s2[20]; printf(Entre com uma string: ); gets(s1); strcpy(s2, Você digitou a string ); // s2 armazena Você digitou a string // + o conteúdo de s1 em s2 strcat(s2, s1); printf(%s, s2); }

15 ICC Jorge Macêdo15 Exemplo strlen() #include main(){ char str[20]; int tamanho; printf(Entre com uma string: ); gets(str); tamanho = strlen(str); printf(Tamanho: %d, tamanho); }

16 ICC Jorge Macêdo16 Exemplo strcmp() #include main(){ char s1[20], s2[20]; printf(Entre com uma string: ); gets(s1); printf(Entre com uma outra string: ); gets(s2); if (strcmp(s1, s2)) printf(\n\n As strings são difetentes); else printf(\n\n As strings são iguais); }

17 ICC Jorge Macêdo17 Matrizes de strings Pode surgir a necessidade de matriz multidimensional de caracteres. Bidimensionais são mais comuns. O tamanho do índice esquerdo indica o número de strings e O tamanho do índice direito determina o comprimento máximo de cada string. Para especificar uma string individual basta especificar o índice esquerdo.

18 ICC Jorge Macêdo18 Matriz de Strings char pessoas[5][10]; Joao\0 1Maria Jos 2Roy Tudo 3Lilia 4

19 ICC Jorge Macêdo19 Exemplo Matrizes de strings #include main(){ char strings[5] [20]; int cont; for(cont = 0; cont < 5; i++){ printf(Digite a string %d:,(cont+1)); gets(strings[i]); } printf(As strings digitadas foram:\n); for(cont = 0; cont < 5; i++) printf(%d: %s\n, (cont+1), strings[i]); }

20 ICC Jorge Macêdo20 Inicialização de Matrizes de Caracteres Inicialização de matrizes de caracteres pode ser das seguintes formas: char nome [tamanho1][tamanho2]...[tamanhoN] = string; Ex: char str[14] = Eu gosto de C; char nome [tamanho1][tamanho2]...[tamanhoNn] = {s,t,r,i,n,g,\0}; Ex: char str[14] = {E,u,,g,o,s,t,o,,d,e,,C,\0};

21 ICC Jorge Macêdo21 Operador sizeof() Este operador retorna o tamanho da variável ou tipo que está em seu operando. Por exemplo sizeof(char) resultaria em 1 (byte). main(){ int num, tam; tam = sizeof(num); printf(Ocupa %d bytes., tam); }


Carregar ppt "ICC – Matrizes Jorge Macêdo. ICC 2008-1 - Jorge Macêdo2 Matrizes Tipo de dado que representa variáveis pelo mesmo nome. Sintaxe: tipo nome[tamanho]; Variáveis."

Apresentações semelhantes


Anúncios Google