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

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

ICC – Matrizes Jorge Macêdo.

Apresentações semelhantes


Apresentação em tema: "ICC – Matrizes Jorge Macêdo."— Transcrição da apresentação:

1 ICC – Matrizes Jorge Macêdo

2 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. ICC Jorge Macêdo

3 Dimensões da Matriz Unidimensional Bidimensional
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]; ICC Jorge Macêdo

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

5 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. ICC Jorge Macêdo

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

7 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]); } ICC Jorge Macêdo

8 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 ICC Jorge Macêdo

9 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. ICC Jorge Macêdo

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

11 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); ICC Jorge Macêdo

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

13 Exemplo – strcpy() #include <stdio.h> #include <string.h>
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); } ICC Jorge Macêdo

14 Exemplo strcat() #include <stdio.h> #include <string.h>
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); } ICC Jorge Macêdo

15 Exemplo strlen() #include <stdio.h> #include <string.h>
main(){ char str[20]; int tamanho; printf(“Entre com uma string: ”); gets(str); tamanho = strlen(str); printf(“Tamanho: %d”, tamanho); } ICC Jorge Macêdo

16 Exemplo strcmp() #include <stdio.h> #include <string.h>
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”); } ICC Jorge Macêdo

17 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. ICC Jorge Macêdo

18 Matriz de Strings char pessoas[5][10]; 1 2 3 4 5 6 7 8 9 ‘J’ ‘o’ ‘a’
1 2 3 4 5 6 7 8 9 ‘J’ ‘o’ ‘a’ ‘\0’ ‘M’ ‘r’ ‘i’ ‘ ’ ‘s’ ‘R’ ‘y’ ‘T’ ‘u’ ‘d’ ‘L’ ‘l’ ICC Jorge Macêdo

19 Exemplo Matrizes de strings
#include <stdio.h> 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]); ICC Jorge Macêdo

20 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’}; ICC Jorge Macêdo

21 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); } ICC Jorge Macêdo


Carregar ppt "ICC – Matrizes Jorge Macêdo."

Apresentações semelhantes


Anúncios Google