algoritmo i - deinf.ufma.brmaria/arqalg/aula-alg4.pdf · exercício de fixação - utilizando...
TRANSCRIPT
Array:Conjunto de informações do mesmo tipo, cadainformação é representada na memória docomputador por uma variável.
ALGORITMO I
Auxiliadora Freire Slide 2
computador por uma variável.
O nome de qualquer variável deste grupo écomposto do nome do array acrescido de umindicador de posição.
Exemplo de Array: • nome do array(posição) – mês(i)
• Índice: número que indica a posição de uma variável emum array.
ALGORITMO I
Auxiliadora Freire Slide 3
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
ALGORITMO I
CONJUNTOS E VARIÁVEIS INDEXADAS• Nome ���� associado ao conjunto • Cada elemento do conjunto é referenciado pelo índice
• Vetores ���� unidimensional de variáveis
Auxiliadora Freire Slide 4
• Exemplo ���� A(3) ���� vetor A com 3 elementos
A(1) = 10 10A(2) = 20 ou A = 20A(3) = 30 30
• Matrizes ���� conjunto multidimensional
Exemplo ���� B(2,2) ���� matriz B com 4 elementos
B(1,1) = 10 B(1,2) = 30B(2,1) = 20 B(2,2) = 40
ALGORITMO I
Auxiliadora Freire Slide 5
B(2,1) = 20 B(2,2) = 40
B= 10 3020 40
• Declaração dos VETORES / MATRIZES
ALGORITMO I
//declaração de variáveis
Auxiliadora Freire Slide 6
quadr : matriz[4][4] de realNotas : matriz[100] de inteirosNome: matriz[4] de caractere
ALGORITMO I
Criar um algoritmo que leia um vetor de tamanho 10 e após a leitura imprima reprovado, se nota < 7
Passos:• Ler 10 notas
Auxiliadora Freire Slide 7
• Ler 10 notas• Verifique se a nota < 7 • Imprimir as notas
ALGORITMO ICriar um algoritmo que leia um vetor de tamanho 10 e após a leitura imprima reprovado, se nota < 7
ALGORITMO LING. C
VAR
Auxiliadora Freire Slide 8
VAR
i, nota [10]: INTEIRO
PARA ( i=1 até 10 ) FAÇA
ESCREVA “Nota “, i
LEIA nota [ i ]
FIM_PARA
ALGORITMO ICriar 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 )
Auxiliadora Freire Slide 9
SE ( nota [ i ] < 7 )
ESCREVA (“Aluno “, i , “ esta reprovado”)
FIM_PARA
....... ......
• 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”.
ALGORITMO I
Auxiliadora Freire Slide 10
• Passos:
• Ler nome• Ler três notas• Calcular media• Imprimir media
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
ALGORITMO I
Auxiliadora Freire Slide 11
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
Algoritmo ( cont) Ling. C( cont.)PARA (I=1,4) FAÇA
SE (media[i] >= 6) ENTAO
ESCREVA nome[i], media[i],“aluno aprovado"
ALGORITMO I
Auxiliadora Freire Slide 12
“aluno aprovado"SENAO
ESCREVA nome[i], media[i], "aluno reprovado“
FIM-SE
FIM_PARA
FIM
• Exemplo – Leia um vetor com 10 elemento e escreva em ordem numérica.
• Passos:
• Ler 10 números aleatórios em um vetor
ALGORITMO I
Auxiliadora Freire Slide 13
• Ler 10 números aleatórios em um vetor• Ordenar o vetor• Imprimir o vetor ordenado
Algoritmo Ling. C// PARTE 1 – LEITURA DO VETOR
VAR
vetor [10],i,j,aux : inteiro
PARA (I=1 até 10) FAÇA
ALGORITMO I
Auxiliadora Freire Slide 14
PARA (I=1 até 10) FAÇA
ESCREVER “Entre com o número”
LEIA vetor[i]
FIM_PARA
Algoritmo Ling. C
// PARTE 2 – ORDENAR O VETOR
PARA (i=1 até 10) FAÇA
PARA (j=i até 10) FAÇA
ALGORITMO I
Auxiliadora Freire Slide 15
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
FIM_PARA
Algoritmo Ling. C// PARTE 3 – ESCREVER O VETOR
ORDENADO
PARA (i=1 até 10) FAÇA
ALGORITMO I
Auxiliadora Freire Slide 16
PARA (i=1 até 10) FAÇA
ESCREVER vetor[i]
FIM_PARA
......
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;
Exercício de fixação - Utilizando MATRIZES Faça os algoritmos
Auxiliadora Freire Slide 17
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.
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.
Exercício de fixação - Utilizando MATRIZES Faça os algoritmos
Auxiliadora Freire Slide 18
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))
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
Exercício de fixação - Utilizando MATRIZES Faça os algoritmos
Auxiliadora Freire Slide 19
LINGUAGEM CMATRIZES - Declaração
Matriz é uma estrutura de dados de tamanho finito e precisa ser definido em sua declaração.
ALGORITMO
//declaração de variáveis
LINGUAGEM C
//declaração de variáveis
Auxiliadora Freire Slide 20
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 � vetor com 4 elementos com até 20 caractere.
EXERCÍCIOS – LING CCriar um algoritmo que leia um vetor de tamanho 10 e após a leitura imprima reprovado, se nota <
7
ALGORITMO LING. C
VAR
Auxiliadora Freire Slide 21
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
ALGORITMO ICriar 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 )
Auxiliadora Freire Slide 22
SE ( nota [ i ] < 7 ) if ( nota [ i ] < 7 )
ESCREVA (“Aluno “, i , “ esta reprovado”)
FIM_PARA
....... ......
• 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”.
ALGORITMO I
Auxiliadora Freire Slide 23
• Passos:
• Ler nome• Ler três notas• Calcular media• Imprimir media
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];
ALGORITMO I
Auxiliadora Freire Slide 24
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 }
Algoritmo ( cont) Ling. C( cont.)
PARA (I=1,4) FAÇA
SE (media[i] >= 6) ENTAO IF(media[i] >= 6)
ESCREVA nome[i], media[i],“aluno aprovado"
printf(“%s %f aluno aprovado"nome[i], media[i]);
SENAO
ALGORITMO I
Auxiliadora Freire Slide 25
SENAO
ESCREVA nome[i], media[i], "aluno reprovado“
printf(“%s %f aluno reprovado"nome[i], media[i]);
FIM-SE
FIM_PARA
FIM
• Exemplo – Leia um vetor com 10 elemento e escreva em ordem numérica.
• Passos:
• Ler 10 números aleatórios em um vetor
ALGORITMO I
Auxiliadora Freire Slide 26
• Ler 10 números aleatórios em um vetor• Ordenar o vetor• Imprimir o vetor ordenado
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
ALGORITMO I
Auxiliadora Freire Slide 27
PARA (I=1 até 10) FAÇA
ESCREVER “Entre com o número”
LEIA vetor[i] scanf (“%d”,&vetor[i]);
FIM_PARA
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++) {
ALGORITMO I
Auxiliadora Freire Slide 28
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 }