MINISTÉRIO DA EDUCAÇÃO
SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
CAMPUS SÃO JOSÉ – SANTA CATARINA
Lógica de Programação
Módulo II
Prof. Tiago Semprebom
[email protected]
www.sj.ifsc.edu.br/~tisemp
Lógica de Programação
Variáveis multidimensionais
•
•
•
Variáveis que representam vetores e matrizes
Guardam múltiplos valores de um mesmo tipo
– Qualquer tipo é possível
O acesso a um valor se faz indexando a variável
– Índices iniciam em 0
Inteiro v[10]; // vetor com 10 inteiros
inteiro i; // usada como índice
INICIO
Para i ← 0 até 9 faça
v[i] ← 0;
Fim para
FIM
Lógica de Programação
Variáveis multidimensionais
• Uso de variáveis multidimensionais:
–
–
–
–
Cálculos com matrizes
Processamento de imagem
Guardar registros em memória
Representar sequências de caracteres alfanuméricos
• Na verdade, variáveis alfanuméricas são implementadas como vetores
de caracteres
– Essas variáveis são conhecidas como strings
Lógica de Programação
Variáveis multidimensionais
•
Cada posição da variável funciona como uma variável independente
– Pode ser acessada, modificada, e usada em expressões aritméticas e lógicas.
Inteiro v[10]; // vetor com 10 inteiros
inteiro i; // usada como índice
real m;
INICIO
m ← 0;
// inicializa v (omitido)
Para i ← 0 até 9 faça
m ← m + v[i];
Fim para;
Escreva('média=', m/10);
FIM
Lógica de Programação
Variáveis
multidimensionais
Exercício: faça um algoritmo para
ler dez números do teclado e
mostrar somente os que
estiverem abaixo da média.
Inteiro v[10]; // vetor com 10 inteiros
inteiro i;
// usada como índice
real m;
INICIO
m ← 0;
Para i ← 0 até 9 faça
Leia(v[i]);
m ← m + v[i];
Fim para;
m ← m / 10;
Para i ← 0 até 9 faça
Se (v[i] < m) então
Escreva(v[i]);
Fim se
Fim para;
FIM
Lógica de Programação
Variáveis multidimensionais
• Variável pode ter mais de duas ou mais dimensões
• Exemplo de uma matriz de inteiros:
Inteiro m[10][10]; // matriz de inteiros bidimensional 10x10
inteiro i, j; // usadas como índice
INICIO
Para i ← 0 até 9 faça
Para j ← 0 até 9 faça
m[i][j] ← 0;
Fim para
Fim para
FIM
Lógica de Programação
Variáveis multidimensionais
•
Exercício: faça um algoritmo para multiplicar duas matrizes bidimensionais
3x3, cujos valores serão fornecidos por teclado.
Inteiro A[3][3], B[3][3], C[3][3];
inteiro i,j,k;
// usada como índice
INICIO
Para i ← 0 até 2 faça
Para j ← 0 até 2 Faça
Leia(A[i][j]);
Leia(B[i][j]);
Fim para;
Fim Para
Para i ← 0 até 2 faça
Para j ← 0 até 2 faça
C[i][j] ← 0;
Para k ← 0 até 2 faça
C[i][j] += A[i][k] * B[k][j];
Fim Para
Fim Para
Fim Para
FIM
Lógica de Programação
Exercício:
Modifique o algoritmo anterior para que as dimensões das matrizes
sejam também lidas via teclado. Obs: as matrizes não são
necessariamente quadradas, e cada linha ou coluna nunca tem
mais que 10 elementos.
Lógica de Programação
Inteiro A[10][10], B[10][10], C[10][10];
inteiro i,j,k; // usadas como índice
inteiro a1, a2, b1, b2; //dimensões
INICIO
Leia(a1);
Leia(a2);
Leia(b1);
Leia(b2);
Se ((a1 > 10) ou (a2 > 10) ou (b1 > 10)
ou (b2 > 10) ou (a2 != b1)) então
Escreva ('Erro !!!');
Termina;
Fim Se
Para i ← 0 até a1 faça
Para j ← 0 até a2 Faça
Leia(A[i][j]);
Fim para;
Fim Para
Para i ← 0 até b1 faça
Para j ← 0 até b2 Faça
Leia(B[i][j]);
Fim para;
Fim Para
Para i ← 0 até a1 faça
Para j ← 0 até b2 faça
C[i][j] ← 0;
Para k ← 0 até a2 faça
C[i][j] += A[i][k] * B[k][j];
Fim Para
Fim Para
Fim Para
FIM
Lógica de Programação
Variáveis multidimensionais
• O tamanho de uma variável multidimensional é predefinido
– Não pode ser modificado
• Os valores usados para indexar essas variáveis não são
verificados
– Pode-se tentar indexar uma posição fora da variável, o que gera
um erro de acesso à memória.
– Portanto, cuidado ao indexá-las!
Lógica de Programação
Variáveis multidimensionais
• Variável do tipo string:
– Vetores de caracteres
– Cada posição da variável guarda um caractere
– Caractere vazio representa o final da string
Caractere s[10];
// variável string para guardar até 10 caracteres
inteiro i; // usada como índice
INICIO
Leia(s);
Para i ← 0 até 9 faça
Escreva('Posição ', i, '=', s[i]);
Fim para
FIM
Lógica de Programação
Variáveis multidimensionais
– Exercício: faça um algoritmo para comparar duas strings
inteiro i; // usada como índice
Booleano ok;
INICIO
Leia(s1);
Leia(s2);
ok ← Verdadeiro;
i ← 0;
Enquanto ((i < 10) and (s1[i] != 0) and (s2[i] != 0)) faça
ok ← ok and (s1[i] == s2[i]);
i ← i + 1;
Fim para
Escreva('Comparação: ', ok);
FIM
Lógica de Programação
Exercícios:
1) Faça um algoritmo para inverter a ordem dos caracteres em uma string
2) Faça um algoritmo para procurar a primeira localização onde se
encontra uma palavra dentro de uma variável string.
3) Escreva um algoritmo que preencha a diagonal principal de uma matriz 5 x 5
com zeros. E o restante com valores um.
4) Escreva um algoritmo que leio os elementos de uma matriz inteira 10 x 10 e
imprima a soma dos elementos que estão acima da diagonal principal.
Download

logica5 - IFSC Campus São José