Baixe o app para aproveitar ainda mais
Prévia do material em texto
MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores unidimensionais - arrays • Ate´ agora: < identificador > ⇒ uma posic¸a˜o de memo´ria. • Vetor: Estrutura de dados que associa uma sequeˆncia de posic¸o˜es de memo´ria a um u´nico identificador. – O tamanho da sequeˆncia e´ especificado pelo programador. 1 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores unidimensionais - arrays • Ate´ agora: < identificador > ⇒ uma posic¸a˜o de memo´ria. • Vetor: Estrutura de dados que associa uma sequeˆncia de posic¸o˜es de memo´ria a um u´nico identificador. – O tamanho da sequeˆncia e´ especificado pelo programador. Por que usar vetores? Exemplo 1: Ler 10 notas, calcular a me´dia das 10 notas e imprimir as notas maiores ou iguais a me´dia. Sem usar vetores. 1 MC 102 – Algoritmos e Programac¸a˜o de Computadores #include<stdio.h> int main() { float n1, n2, n3, n4, n5, n6, n7, n8, n9, n10; float media; printf(‘‘Digite a nota 1: ”); scanf(‘‘%f”,&n1); printf(‘‘Digite a nota 2: ”); scanf(‘‘%f”,&n2); printf(‘‘Digite a nota 3: ”); scanf(‘‘%f”,&n3); printf(‘‘Digite a nota 4: ”); scanf(‘‘%f”,&n4); printf(‘‘Digite a nota 5: ”); scanf(‘‘%f”,&n5); printf(‘‘Digite a nota 6: ”); scanf(‘‘%f”,&n6); printf(‘‘Digite a nota 7: ”); scanf(‘‘%f”,&n7); printf(‘‘Digite a nota 8: ”); scanf(‘‘%f”,&n8); printf(‘‘Digite a nota 9: ”); scanf(‘‘%f”,&n9); printf(‘‘Digite a nota 10: ”); scanf(‘‘%f”,&n10); media = (n1+n2+n3+n4+n5+n6+n7+n8+n9+n10)/10.0; printf(‘‘Media = %f\n”,media); if (n1>=media) printf(‘‘Nota 1: %f\n”,n1); if (n2>=media) printf(‘‘Nota 2: %f\n”,n2); if (n3>=media) printf(‘‘Nota 3: %f\n”,n3); if (n4>=media) printf(‘‘Nota 4: %f\n”,n4); if (n5>=media) printf(‘‘Nota 5: %f\n”,n5); if (n6>=media) printf(‘‘Nota 6: %f\n”,n6); if (n7>=media) printf(‘‘Nota 7: %f\n”,n7); if (n8>=media) printf(‘‘Nota 8: %f\n”,n8); if (n9>=media) printf(‘‘Nota 9: %f\n”,n9); if (n10>=media) printf(‘‘Nota 10: %f\n”,n10); return 0; } 2 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores • Va´riaveis compostas homogeˆneas. – Um u´nico identificador esta´ associado a uma sequeˆncia de posic¸o˜es de memo´ria. – Individualizac¸a˜o e´ feita atrave´s de ı´ndices. – Conteu´do e´ do mesmo tipo. 3 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores • Va´riaveis compostas homogeˆneas. – Um u´nico identificador esta´ associado a uma sequeˆncia de posic¸o˜es de memo´ria. – Individualizac¸a˜o e´ feita atrave´s de ı´ndices. – Conteu´do e´ do mesmo tipo. Sintaxe: <tipo> <identificador>[<tamanho>]; – Sa˜o reservadas tamanho posic¸o˜es de memo´ria. Os ı´ndices do vetor comec¸am em 0 e va˜o ate´ tamanho-1. –• Exemplos: int notas[50]; float nums[120]; 3 MC 102 – Algoritmos e Programac¸a˜o de Computadores • Programa das notas utilizando vetores: int main() { float notas[10], media=0.0; int i; for (i = 0; i < 10; i++) { printf(‘‘Digite nota %d: ”, i+1); scanf(‘‘%f”, ¬as[i]); media = media + notas[i]; } media = media / 10.0; printf(‘‘Media = %f\n”, media); for (i = 0; i < 10; i++) if (notas[i] >= media) printf(‘‘Nota %d: %f\n”, i + 1, notas[i]); return 0; } 4 MC 102 – Algoritmos e Programac¸a˜o de Computadores • Programa das notas utilizando vetores, nu´mero de notas varia´vel: #include<stdio.h> #define MAX 20 int main() { float notas[MAX], media=0.0; int i, n; do { printf(‘‘Quantas notas sera˜o digitadas? ”); scanf(‘‘%d”, &n); } while ((n <= 0) || (n > MAX)); for (i = 0; i < n; i++) { printf(‘‘Digite nota %d: ”, i+1); scanf(‘‘%f”, ¬as[i]); media = media + notas[i]; } media = media / n; printf(‘‘Media = %f\n”, media); for (i = 0; i < n; i++) if (notas[i] >= media) printf(‘‘Nota %d: %f\n”, i + 1, notas[i]); return 0;} 5 MC 102 – Algoritmos e Programac¸a˜o de Computadores Exemplo 2: Ler uma sequeˆncia de nu´meros inteiros e, posteriormente, imprimi-los na ordem inversa. 6 MC 102 – Algoritmos e Programac¸a˜o de Computadores Exemplo 2: Ler uma sequeˆncia de nu´meros inteiros e, posteriormente, imprimi-los na ordem inversa. #include<stdio.h> #define MAX 20 int main() { int nums[MAX], i; do { printf(‘‘Quantos nu´meros sera˜o digitados? ”); scanf(‘‘%d”, &nums[0]); } while ((nums[0] < 0) || (nums[0] > MAX-1)); for (i = 1; i <= nums[0]; i++) scanf(‘‘%d”, &nums[i]); for (i = nums[0]; i >= 1; i−−) printf(‘‘%d\n”, nums[i]); return 0; } 6 MC 102 – Algoritmos e Programac¸a˜o de Computadores Exemplo 3: Dada uma sequeˆncia de nu´meros, retornar o ı´ndice do maior elemento do vetor. 7 MC 102 – Algoritmos e Programac¸a˜o de Computadores Exemplo 3: Dada uma sequeˆncia de nu´meros, retornar o ı´ndice do maior elemento do vetor. #include<stdio.h> #define MAX 100 int main() { int nums[MAX], n, i, imax; do { printf(‘‘Quantos nu´meros sera˜o digitados? ”); scanf(‘‘%d”, &n); } while (n < 0 || n > MAX); for (i = 0, imax=0; i < n; i++) { scanf(‘‘%d”, &nums[i]); if ((nums[imax] < nums[i])) imax = i; } if (n) printf(‘‘´Indice do ma´ximo: %d\n”, imax); return 0; } 7 MC 102 – Algoritmos e Programac¸a˜o de Computadores Alguns cuidados • Suponha que tenhamos: int vet[20]; – vet[-1] = 10; ou vet[20] = 3; −→ Resultado ??? – vet = 1; −→ Erro!!! 8 MC 102 – Algoritmos e Programac¸a˜o de Computadores Alguns cuidados • Suponha que tenhamos: int vet[20]; – vet[-1] = 10; ou vet[20] = 3; −→ Resultado ??? – vet = 1; −→ Erro!!! • Suponha que tenhamos tambe´m: int vet1[20]; – Para copiar os elementos de vet em vet1 : ∗ Na˜o podemos fazer vet1 = vet; ∗ E´ necessa´rio fazer a atribuic¸a˜o elemento a elemento: for(i = 0; i < 20; i++) vet1[i] = vet[i]; 8 MC 102 – Algoritmos e Programac¸a˜o de Computadores Exemplo 4: (Busca) Fac¸a um programa que leia uma sequeˆncia de nu´meros inteiros e posterioremente pesquise a ocorreˆncia de nu´meros nesta sequeˆncia. Seu programa deve perguntar ao usua´rio se ele deseja fazer uma pesquisa. Se a resposta for positiva o seu programa deve pesquisar se o nu´mero solicitado ocorre na sequeˆncia e depois perguntar novamente se quer pesquisar. Se a resposta for negativa o seu programa deve encerrar a execuc¸a˜o. 9 MC 102 – Algoritmos e Programac¸a˜o de Computadores Exemplo 4: (Busca) Fac¸a um programa que leia uma sequeˆncia de nu´meros inteiros e posterioremente pesquise a ocorreˆncia de nu´meros nesta sequeˆncia. Seu programa deve perguntar ao usua´rio se ele deseja fazer uma pesquisa. Se a resposta for positiva o seu programa deve pesquisar se o nu´mero solicitado ocorre na sequeˆncia e depois perguntar novamente se quer pesquisar. Se a resposta for negativa o seu programa deve encerrar a execuc¸a˜o. Busca sequencial – versa˜o simplificada . . . int main() { int seq[MAX], num, i = 1, achou = 0; . . . printf(‘‘Digite nu´mero a ser pesquisado: ”); scanf(‘‘%d”, &num); while ((i <= seq[0]) && (!achou)) { if (seq[i] == num) achou = 1; i++; } . . . 9 MC 102 – Algoritmos e Programac¸a˜o de Computadores Exemplo 5: Busca bina´ria. • Pressupo˜e que os elementos estejam ordenados; • Converge mais ra´pido. 10 MC 102 – Algoritmos e Programac¸a˜o de Computadores Exemplo 5: Busca bina´ria. • Pressupo˜e que os elementos estejam ordenados; • Converge mais ra´pido. 0 10 1 3 15 22 35 43 49 51 60 80 81 89 93 40? 6 12 15 22 35 4910 35 43 43 49 35 43 10 MC 102 – Algoritmos e Programac¸a˜o de Computadores BBinaria(x, vet[0. . . n]) 1. left ← 0 2. right ← n 3. middle ← (left + right)/2 4. Enquanto (x 6= vet[middle]) e (left < right) 5. Se vet[middle]< x 6. left ← middle +1 7. Sena˜o 8. right ← middle −1 9. middle ← (left + right)/2 10. Se x = vet[middle] retorne middle 11. Sena˜o retorne -1 11 MC 102 – Algoritmos e Programac¸a˜o de Computadores SelectionSort 12 MC 102 – Algoritmos e Programac¸a˜o de Computadores SelectionSort • Ideia: considere todos os elementos, escolha o menor e o coloque na primeira posic¸a˜o; agora escolha o segundo menor e o coloque na segunda posic¸a˜o; e assim sucessivamente. 12 MC 102 – Algoritmos e Programac¸a˜o de Computadores SelectionSort • Ideia: considere todos os elementos, escolha o menor e o coloque na primeira posic¸a˜o; agora escolha o segundo menor e o coloque na segunda posic¸a˜o; e assim sucessivamente. 1. Para i← 0 ate´ n− 1 fac¸a 2. min← i 3. Para j ← i+ 1 ate´ n− 1 fac¸a 4. Se a[j] < a[min] enta˜o min← j; 5. a[min]↔ a[i] • Exerc´ıcio: implementar o algoritmo. 12 MC 102 – Algoritmos e Programac¸a˜o de Computadores InsertionSort 13 MC 102 – Algoritmos e Programac¸a˜o de Computadores InsertionSort • Ideia: e´ a mesma que usamos para ordenar uma ma˜o de baralho. Cada elemento e´ colocado em seu lugar correto. ≤ x≤ x xx > x> x OrdenadoOrdenado Na˜o ordenado Na˜o ordenado 13 MC 102 – Algoritmos e Programac¸a˜o de Computadores InsertionSort • Ideia: e´ a mesma que usamos para ordenar uma ma˜o de baralho. Cada elemento e´ colocado em seu lugar correto. ≤ x≤ x xx > x> x OrdenadoOrdenado Na˜o ordenado Na˜o ordenado 1. Para j ← 1 ate´ n− 1 fac¸a 2. x← a[j] 3. i← j − 1 4. Enquanto i >= 0 e a[i] > x fac¸a 5. a[i+ 1]← a[i] 6. i← i− 1 7. a[i+ 1]← x • Exerc´ıcio: implementar o algoritmo. 13 MC 102 – Algoritmos e Programac¸a˜o de Computadores BubbleSort 14 MC 102 – Algoritmos e Programac¸a˜o de Computadores BubbleSort • Ideia: dado um vetor de n elementos, a ideia e´ percorrer o vetor n− 1 vezes e a cada passagem fazer flutuar para o topo o maior elemento da sequeˆncia. 14 MC 102 – Algoritmos e Programac¸a˜o de Computadores BubbleSort • Ideia: dado um vetor de n elementos, a ideia e´ percorrer o vetor n− 1 vezes e a cada passagem fazer flutuar para o topo o maior elemento da sequeˆncia. 1. Para i← 0 ate´ n− 2 fac¸a 2. Para j ← n− 1 ate´ i+ 1 fac¸a 3. Se a[j − 1] > a[j] enta˜o 4. a[j]↔ a[j − 1] • Exerc´ıcio: implementar o algoritmo. 14 MC 102 – Algoritmos e Programac¸a˜o de Computadores Triaˆngulo de Pascal usando dois vetores 15 MC 102 – Algoritmos e Programac¸a˜o de Computadores Triaˆngulo de Pascal usando dois vetores int main() { int ant[MAX], atual[MAX], n, i, j; . . . \* Leitura do tamanho lo´gico *\ . . . \* Inicia ant com n+1 elementos: (0, 1, 0, . . . , 0) for (i = 1; i <= n; i++) { for (j = 1; j <= i; j++) { atual[j] = ant[j-1] + ant[j]; printf(‘‘%d\t”, atual[j]); } printf(‘‘\n”); /* espac/ind para caber no slide */ for (j = 1; j <= i; j++) { ant[j] = atual[j]; } } return 0; } 15 MC 102 – Algoritmos e Programac¸a˜o de Computadores Triaˆngulo de Pascal usando um vetor 16 MC 102 – Algoritmos e Programac¸a˜o de Computadores Triaˆngulo de Pascal usando um vetor int main() { int vet[MAX], i, j, n; scanf(‘‘%d”, &n); vet[0] = 1; for (i = 0; i < n; i++) { for (j = 0; j <= i; j++) { printf(‘‘%5d”, vet[j]); } printf(‘‘\n”); vet[i+1] = 1; for (j = i; j > 0; j--) { vet[j] = vet[j]+ vet[j-1]; } } return 0;} 16 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores de caracteres • Um caracter: ’A’ , ’b’ , ’0’ . . . . – Para armazenar um caracter usamos o tipo char. 17 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores de caracteres • Um caracter: ’A’ , ’b’ , ’0’ . . . . – Para armazenar um caracter usamos o tipo char. • Uma cadeia/sequeˆncia de caracteres (string): “Isto e´ uma cadeia de caracteres.” 17 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores de caracteres • Um caracter: ’A’ , ’b’ , ’0’ . . . . – Para armazenar um caracter usamos o tipo char. • Uma cadeia/sequeˆncia de caracteres (string): “Isto e´ uma cadeia de caracteres.” – Cadeias de caracteres foram usadas nas func¸o˜es printf e scanf. – Delimitadas por aspas duplas. – Atenc¸a˜o: “A” 6= ’A’ 17 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores de caracteres 18 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores de caracteres • Para armazenar uma cadeia de caracteres usamos um vetor, cujos elementos sa˜o caracteres. char < identificador > [ < tamanho >] – Exemplo: char cad[16]; 18 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores de caracteres • Para armazenar uma cadeia de caracteres usamos um vetor, cujos elementos sa˜o caracteres. char < identificador > [ < tamanho >] – Exemplo: char cad[16]; • O u´ltimo s´ımbolo de uma cadeia de caracteres e´ o s´ımbolo especial ’\0’, denominado caracter nulo (um caracter cujo valor nume´rico e´ zero). L i n g u a g e m C ! \0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 – Note que o comprimento de uma cadeia de caracteres e´ sempre um a mais que o tamanho do texto. 18 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores de caracteres char cad[16]; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 char cad[16] = “Exemplo”; E x e m p l o \0 ? ? ? ? ? ? ? ? 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 char cad[ ] = “Exemplo”; E x e m p l o \0 0 1 2 3 4 5 6 7 19 MC 102 – Algoritmos e Programac¸a˜o de Computadores Manipulac¸a˜o de strings • Impressa˜o: printf(“%s\n”, cad); • Leitura: scanf(“%s”, cad) – Na˜o tem “&”; – Ignora brancos e tabs. • Acesso: por elementos, cad[i] (i ≤ strlen(cad)) • Biblioteca: string.h – strcpy(cad, “Copiando”); – strlen(cad); – strcat(cad, cad1); – outras. 20 MC 102 – Algoritmos e Programac¸a˜o de Computadores Ler uma string sem espac¸os em branco 21 MC 102 – Algoritmos e Programac¸a˜o de Computadores Ler uma string sem espac¸os em branco int main() { char str[MAX]; int tam; printf(‘‘Digite uma string: ”); scanf(‘‘%s”, str); tam = strlen(str); printf(‘‘A string e´:”); printf(‘‘%s\n”, str); printf(‘‘Comprimento:”); printf(‘‘%d.\n”, tam); return 0; } 21 MC 102 – Algoritmos e Programac¸a˜o de Computadores Ler uma string sem espac¸os em branco int main() { char str[MAX]; int tam; printf(‘‘Digite uma string: ”); scanf(‘‘%s”, str); tam = strlen(str); printf(‘‘A string e´:”); printf(‘‘%s\n”, str); printf(‘‘Comprimento:”); printf(‘‘%d.\n”, tam); return 0; } • Leitura com espac¸os: scanf(‘‘%[ˆ\n]s”, str); =⇒ setbuf(stdin, NULL); fgets(str, MAX-1, stdin); 21 MC 102 – Algoritmos e Programac¸a˜o de Computadores Inverter os elementos de uma string 22 MC 102 – Algoritmos e Programac¸a˜o de Computadores Inverter os elementos de uma string #include <stdio.h> #include <string.h> #define MAX 20 int main() { char str[MAX], aux; int i, tam; printf(‘‘Digite uma string: ”); scanf(‘‘%s”, str); tam = strlen(str); printf(‘‘A string original e´: %s\n”, str); for (i = 0; i < (tam/2)-1; i++) { aux = str[i]; str[i] = str[tam - 1 - i]; str[tam - 1 - i] = aux; } printf(‘‘A string invertida e´: %s\n”, str); return 0; } 22 MC 102 – Algoritmos e Programac¸a˜o de Computadores Contar ocorreˆncias dos padro˜es ABC e ADE em uma seq. de letras) 23 MC 102 – Algoritmos e Programac¸a˜o de Computadores Contar ocorreˆncias dos padro˜es ABC e ADE em uma seq. de letras) Programa com erros – determinem! i = 0; while (i < strlen(dna)- 1) { if (dna[i] == ’A’) { if ((i+2)< strlen(dna)) flag = ((dna[i+1] == ’B’ && dna[i+2] == ’C’) || (dna[i+1] == ’D’ && dna[i+2] == ’E’)); if (flag) { num++; flag = 0; i = i+ 3;} else i++; } } 23 MC 102 – Algoritmos e Programac¸a˜o de Computadores Outra soluc¸a˜o – corrijam! 24 MC 102 – Algoritmos e Programac¸a˜o de Computadores Outra soluc¸a˜o – corrijam! #include<stdio.h> #include<string.h> #define MAX 20 int main(){ char dna[MAX]; int i, j, tam, num = 0, flag = 0; scanf(‘‘%s”, dna); tam = strlen(dna); while (i < tam - 2) { if (dna[i] == ’A’) { flag = (dna[i+1] == ’B’ && dna[i+2] == ’C’) || (dna[i+1] == ’D’ && dna[i+2] == ’E’); } if (flag) { num++; i+=3; } else i++; } printf(‘‘Nu´mero de ocorreˆncias e´ %d\n”, num); return 0; } 24 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores multidimensionais 25 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores multidimensionais • Vetores bidimensionais: matrizes < tipo > < identificador > [ linhas ] [ colunas ]; – Exemplo: int mat[3][4]; 25 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores multidimensionais • Vetores bidimensionais: matrizes < tipo > < identificador > [ linhas ] [ colunas ]; – Exemplo: int mat[3][4]; • Ler os dados de uma matriz: int i, j, nlinhas, ncolunas, mat[MAX][MAX]; . . . for (i = 0; i < nlinhas; i++) for (j = 0; j < ncolunas; j++) scanf(‘‘%d”, &mat[i][j]); 25 MC 102 – Algoritmos e Programac¸a˜o de Computadores Vetores multidimensionais • Vetores bidimensionais: matrizes < tipo > < identificador > [ linhas ] [ colunas ]; – Exemplo: int mat[3][4]; • Ler os dados de uma matriz: int i, j, nlinhas, ncolunas, mat[MAX][MAX]; . . . for (i = 0; i < nlinhas; i++) for (j = 0; j < ncolunas; j++) scanf(‘‘%d”, &mat[i][j]); • Generalizac¸a˜o: < tipo > < identificador > [ dim 1 ] [ dim 2 ] . . . [dim n]; 25 MC 102 – Algoritmos e Programac¸a˜o de Computadores Fac¸a um programa para somar duas matrizes de dimenso˜es m× n 26 MC 102 – Algoritmos e Programac¸a˜o de Computadores Fac¸a um programa para somar duas matrizes de dimenso˜es m× n #include<stdio.h> #define MAX 20 int main() { int mat[MAX][MAX], mat1[MAX][MAX], m, n, i, j; . . . \* Leitura de dados *\ for (i = 0; i < m; i++) for (j = 0; j < n; j++) { mat[i][j] = mat[i][j]+mat1[i][j]; } . . . \* impressa˜o da matriz *\ return 0;} 26 MC 102 – Algoritmos e Programac¸a˜o de Computadores Fac¸a um programa para transpor uma matriz quadrada 27 MC 102 – Algoritmos e Programac¸a˜o de Computadores Fac¸a um programa para transpor uma matriz quadrada #include<stdio.h> #define MAX 20 int main() { int mat[MAX][MAX], aux, n, i, j; . . . \* Leitura de dados *\ for (i = 0; i < n; i++) for (j = 0; j < i; j++) { aux = mat[i][j]; mat[i][j] = mat[j][i]; mat[j][i] = aux; } . . . \* impressa˜o da matriz *\ return 0;} 27 MC 102 – Algoritmos e Programac¸a˜o de Computadores Fac¸a um programa para multiplicar duas matrizes de dimenso˜es m× p e p× n. 28 MC 102 – Algoritmos e Programac¸a˜o de Computadores Fac¸a um programa para multiplicar duas matrizes de dimenso˜es m× p e p× n. int main() { int mat1[MAX][MAX], mat2[MAX][MAX], mat res[MAX][MAX]; int m, n, p, k, i, j; . . . \* Leitura de dados *\ for (i = 0; i < m; i++) for (j = 0; j < n; j++) { mat res[i][j] = 0; for (k=0; k<p; k++) mat res[i][j] = mat res[i][j] + mat1[i][k]*mat2[k][j]; } . . . \* impressa˜o da matriz *\ return 0;} 28 MC 102 – Algoritmos e Programac¸a˜o de Computadores Triaˆngulo de Pascal usando uma matriz 29 MC 102 – Algoritmos e Programac¸a˜o de Computadores Triaˆngulo de Pascal usando uma matriz #include<stdio.h> #define MAX 20 int main() { int mat[MAX][MAX], n, i, j; . . . \* Leitura do tamanho lo´gico *\ . . . \* Inicia matriz: uns na coluna 0 e na diagonal principal; zeros no restante *\ for (i = 1; i < n; i++) for (j = 1; j < i; j++) mat[i][j] = mat[i-1][j-1] + mat[i-1][j]; . . . \* impressa˜o da matriz *\ return 0; } 29 MC 102 – Algoritmos e Programac¸a˜o de Computadores Iniciando vetores com valores constantes • Em algumas situac¸o˜es, ao criarmos uma matriz, pode ser u´til atribuir valores ja´ na sua criac¸a˜o. • No caso de vetores basta atribuir uma lista de valores constantes de mesmo tipo separados por v´ırgulas e entre chaves. – Exemplo: int vet[5] = {10, 20, 30, 40, 50}; • No caso de strings, uma constante string pode ser atribu´ıda diretamente. – Exemplo char st1[100] = “sim isto e´ poss´ıvel”; 30 MC 102 – Algoritmos e Programac¸a˜o de Computadores Iniciando vetores com valores constantes • No caso de vetores bidimensionais, usa-se chaves para delimitar as linhas: – Exemplo: int vet[2][5] = { {1, 20, 3, 40, 5} , {60, 7, 80, 9, 100 } } ; • No caso tridimensional, cada ı´ndice da primeira dimensa˜o refere-se a uma matriz completa: – Exemplo: int v3[2][3][4] = { { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }, { {0, 0, 0, 0}, {5, 6, 7, 8}, {0, 0, 0, 0} }, }; • Generalizac¸a˜o... 31
Compartilhar