ALGORITMO I VARIÁVEIS INDEXADAS Array Auxiliadora Freire Slide 1 ALGORITMO I Array: Conjunto de informações do mesmo tipo, cada informação é representada na memória do computador por uma variável. O nome de qualquer variável deste grupo é composto do nome do array acrescido de um indicador de posição. Auxiliadora Freire Slide 2 ALGORITMO I Exemplo de Array: • • nome do array(posição) – mês(i) Índice: número que indica a posição de uma variável em um array. • Dimensão: quantidade de índices. • Vetor: Vet(I); Índice I; Dimensão 1 • Matriz: Mat(I, J); Índices I, J; Dimensão 2 Auxiliadora Freire Slide 3 ALGORITMO I CONJUNTOS E VARIÁVEIS INDEXADAS • • Nome associado ao conjunto Cada elemento do conjunto é referenciado pelo índice • Vetores • Exemplo unidimensional de variáveis A(3) A(1) = 10 A(2) = 20 A(3) = 30 Auxiliadora Freire vetor A com 3 elementos ou A = 10 20 30 Slide 4 ALGORITMO I • Matrizes Exemplo conjunto multidimensional B(2,2) matriz B com 4 elementos B(1,1) = 10 B(2,1) = 20 B(1,2) = 30 B(2,2) = 40 B= 10 30 20 40 Auxiliadora Freire Slide 5 ALGORITMO I • Declaração dos VETORES / MATRIZES //declaração de variáveis quadr : matriz[4][4] de real Notas : matriz[100] de inteiros Nome: matriz[4] de caractere Auxiliadora Freire Slide 6 ALGORITMO I Criar um algoritmo que leia um vetor de tamanho 10 e após a leitura imprima reprovado, se nota < 7 Passos: Auxiliadora Freire • • • Ler 10 notas Verifique se a nota < 7 Imprimir as notas Slide 7 ALGORITMO I Criar um algoritmo que leia um vetor de tamanho 10 e após a leitura imprima reprovado, se nota < 7 ALGORITMO LING. C VAR i, nota [10]: INTEIRO PARA ( i=1 até 10 ) FAÇA ESCREVA “Nota “, i LEIA nota [ i ] FIM_PARA Auxiliadora Freire Slide 8 ALGORITMO I Criar um algoritmo que leia um vetor de tamanho 10 e após a leitura imprima reprovado, se nota < 7 ALGORITMO (CONT.) LING. C (CONT.) PARA ( i=1 até 10 ) FAÇA SE ( nota [ i ] < 7 ) ESCREVA (“Aluno “, i , “ esta reprovado”) FIM_PARA ....... Auxiliadora Freire ...... Slide 9 ALGORITMO I • Exemplo – Leia 3 notas e os nomes de 4 alunos. Escreva no final o nome e a média de cada aluno Se a média for maior ou igual a 6 escreva Aluno Aprovado” , caso a média for menor que 6, escreva Aluno Reprovado”. • Passos: • • • • Auxiliadora Freire Ler nome Ler três notas Calcular media Imprimir media Slide 10 ALGORITMO I Algoritmo Ling. C VAR N1[4],n2[4],n3[4],media[4]: real i: inteiro Nome[4]: caractere PARA (I=1 até 4) FAÇA ESCREVER “Entre com o nome” LEIA nome[i] ESCREVA ,"entre com as notas: n1,n2,n3" LEIA n1[i],n2[i],n3[i] media[i] = (n1[i] + n2[i] + n3[i] )/ 3. FIM_PARA Auxiliadora Freire Slide 11 ALGORITMO I Algoritmo ( cont) Ling. C( cont.) PARA (I=1,4) FAÇA SE (media[i] >= 6) ENTAO ESCREVA nome[i], media[i], “aluno aprovado" SENAO ESCREVA nome[i], media[i], "aluno reprovado“ FIM-SE FIM_PARA FIM Auxiliadora Freire Slide 12 ALGORITMO I • Exemplo – Leia um vetor com 10 elemento e escreva em ordem numérica. • Passos: • Ler 10 números aleatórios em um vetor • Ordenar o vetor • Imprimir o vetor ordenado Auxiliadora Freire Slide 13 ALGORITMO I Algoritmo Ling. C // PARTE 1 – LEITURA DO VETOR VAR vetor [10],i,j,aux : inteiro PARA (I=1 até 10) FAÇA ESCREVER “Entre com o número” LEIA vetor[i] FIM_PARA Auxiliadora Freire Slide 14 ALGORITMO I Algoritmo Ling. C // PARTE 2 – ORDENAR O VETOR PARA (i=1 até 10) FAÇA PARA (j=i até 10) FAÇA SE (vetor[i] > vetor[j]) ENTAO aux = vetor[i] vetor[i] = vetor[j] vetor[j] =aux FIM_SE FIM_PARA Auxiliadora Freire FIM_PARA Slide 15 ALGORITMO I Algoritmo Ling. C // PARTE 3 – ESCREVER O VETOR ORDENADO PARA (i=1 até 10) FAÇA ESCREVER vetor[i] FIM_PARA ...... Auxiliadora Freire Slide 16 Exercício de fixação - Utilizando MATRIZES Faça os algoritmos 1 - Escreva um algoritmo que leia dois vetores A e B de tamanho 10 e gere um vetor C e D que contenha: a) Vetor C a soma entre A e B; b) Vetor D a diferença entre A e B; A cada operação, mostrar resultado. Dica: operações feitas com elementos de índices iguais. 2 - Escreva um algoritmo que leia 10 elementos de um vetor, encontre o maior elemento do vetor e mostra o elemento e a posição em que se encontra no vetor. Auxiliadora Freire Slide 17 Exercício de fixação - Utilizando MATRIZES Faça os algoritmos 3 – Dada uma matriz quadrada de ordem 3, faça um algoritmo que calcule: a) A soma dos elementos da primeira coluna. b) A soma dos elementos da terceira linha. c) A multiplicação dos elementos da diagonal principal d) A soma de todos os elementos da matriz. A cada operação mostrar o imprimir o resultado. 4 – Escreva um algoritmo que lê uma matriz e retorna sua correspondente matriz transposta. 5 - Escreva um algoritmo que leia as matrizes A(2,2) e B(2,2) e calcule a matriz C = A + B e D = A * B. ((dica: c(i,j) = c(i,j) + a(i,k) * b(k,j)) Auxiliadora Freire Slide 18 Exercício de fixação - Utilizando MATRIZES Faça os algoritmos 6- Leia um vetor com nomes de 5 alunos e depois escreva: 1- ordenando por nome. 2- ordenando por nota 7- Considerando o exercício anterior, pesquise a nota de um aluno específico Auxiliadora Freire Slide 19 LINGUAGEM C MATRIZES - Declaração Matriz é uma estrutura de dados de tamanho finito e precisa ser definido em sua declaração. ALGORITMO LINGUAGEM C //declaração de variáveis //declaração de variáveis quadr : matriz[4][4] de real; Notas : matriz[100] de inteiros; Nome : matriz[4][20] de caractere float quadr [4][4] ; int notas [100] ; char nome[4][20]; // Nome Auxiliadora Freire vetor com 4 elementos com até 20 caractere. Slide 20 EXERCÍCIOS – LING C Criar um algoritmo que leia um vetor de tamanho 10 e após a leitura imprima reprovado, se nota < 7 ALGORITMO LING. C VAR i, nota [10]: INTEIRO int i,nota[10]; PARA ( i=1 até 10 ) FAÇA ESCREVA “Nota “, i LEIA nota [ i ] scanf (%d, ¬a[i]); FIM_PARA Auxiliadora Freire Slide 21 ALGORITMO I Criar um algoritmo que leia um vetor de tamanho 10 e após a leitura imprima reprovado, se nota < 7 ALGORITMO (CONT.) LING. C (CONT.) PARA ( i=1 até 10 ) FAÇA SE ( nota [ i ] < 7 ) if ( nota [ i ] < 7 ) ESCREVA (“Aluno “, i , “ esta reprovado”) FIM_PARA ....... Auxiliadora Freire ...... Slide 22 ALGORITMO I • Exemplo – Leia 3 notas e os nomes de 4 alunos. Escreva no final o nome e a média de cada aluno Se a média for maior ou igual a 6 escreva Aluno Aprovado” , caso a média for menor que 6, escreva Aluno Reprovado”. • Passos: • • • • Auxiliadora Freire Ler nome Ler três notas Calcular media Imprimir media Slide 23 ALGORITMO I Algoritmo Ling. C VAR n1[4],n2[4],n3[4],media[4]: real real n1[4],n2[4],n3[4],media[4]; i: inteiro ... Nome[4]: caractere com 20 caractere char nome [4][20]; PARA (I=1 até 4) FAÇA for ( i=1,i<=4;i++) { ESCREVER “Entre com o nome” ... LEIA nome[i] scanf (“%s”,&nome[i]); ESCREVA ,"entre com as notas: n1,n2,n3" ... LEIA n1[i],n2[i],n3[i] scanf (“%f %f%f”,&n1[i],&n2[i],&n3[i]); media[i] = (n1[i] + n2[i] + n3[i] )/3. media[i] = (n1[i] + n2[i] + n3[i] )/3. FIM_PARA Auxiliadora Freire } Slide 24 ALGORITMO I Algoritmo ( cont) Ling. C( cont.) PARA (I=1,4) FAÇA SE (media[i] >= 6) ENTAO ESCREVA nome[i], media[i], “aluno aprovado" IF(media[i] >= 6) printf(“%s %f aluno aprovado" nome[i], media[i]); SENAO ESCREVA nome[i], media[i], "aluno reprovado“ printf(“%s %f aluno reprovado" nome[i], media[i]); FIM-SE FIM_PARA FIM Auxiliadora Freire Slide 25 ALGORITMO I • Exemplo – Leia um vetor com 10 elemento e escreva em ordem numérica. • Passos: • Ler 10 números aleatórios em um vetor • Ordenar o vetor • Imprimir o vetor ordenado Auxiliadora Freire Slide 26 ALGORITMO I Algoritmo Ling. C // PARTE 1 – LEITURA DO VETOR VAR vetor [10],i,j,aux : inteiro int vetor [10],i,j,aux; PARA (I=1 até 10) FAÇA ESCREVER “Entre com o número” LEIA vetor[i] scanf (“%d”,&vetor[i]); FIM_PARA Auxiliadora Freire Slide 27 ALGORITMO I Algoritmo Ling. C // PARTE 2 – ORDENAR O VETOR PARA (i=1 até 10) FAÇA For (i=1;i<=10;i++) { PARA (j=i até 10) FAÇA For (j=1;j<=10;j++) { SE (vetor[i] > vetor[j]) ENTAO if (vetor[i] > vetor[j]) { aux = vetor[i] aux = vetor[i]; vetor[i] = vetor[j] vetor[i] = vetor[j]; vetor[j] =aux vetor[j] =aux; FIM_SE } FIM_PARA FIM_PARA Auxiliadora Freire } } Slide 28 ALGORITMO I Algoritmo Ling. C // PARTE 3 – ESCREVER O VETOR ORDENADO PARA (i=1 até 10) FAÇA ESCREVER vetor[i] printf (“%d”, vetor[i]); FIM_PARA ...... Auxiliadora Freire Slide 29