Buscar

Vetor e matriz

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmo e Estruturas de dados
Engenharia Elétrica
Prof(a): Carla Ferreira Coelho
1
Objetivo
Identificar as possíveis estruturas e técnicas que podem ser utilizadas no projeto de algoritmos
Ajudar a desenvolver o raciocínio lógico e a capacidade de abstração do aluno através da solução de problemas técnicos e científicos.
Ementa
Vetores
Vetores unidimensionais
Vetores bidimensionais
Cadeias de caracteres
Estruturas
Definição de estruturas
Estruturas simples
Conjunto de estruturas
Módulos de programas
Conceito de modularização
Funções que retornam valor
Funções que não retornam valor
Passagem de parâmetro
Recursividade
Estruturas de dados estáticas
Pilhas
Filas
Listas encadeadas
Vetores
Vetores são estruturas de dados compostas e homogêneas, o que significa que podem armazenar diferentes dados simultaneamente desde que os dados sejam do mesmo tipo.
O número de variáveis indexadas de um vetor, ou o número de posições de um vetor é denominado tamanho declarado de um vetor e depende exclusivamente da forma como foi realizada a declaração do vetor.
Vetores unidimensionais: Definição
Alguns tipos de vetores são descritos como variáveis compostas, homogêneas e unidimensionais;
Unidimensionais porque são endereçadas por um único índice;
Vetores unidimensionais: declaração de vetor
Português estruturado:
<identificador>:vetor[tamanho] de < tipo >
Onde: 
Identificador= nome da variável
Tamanho [VI..VF]
VI=Valor inicial do índice 
VF=valor Final do índice
Exemplos:
Notas:vetor [1..10] de real;
Sorteio:vetor [1..500] de inteiro;
Nome:vetor [1..50] de caractere;
C++
<tipo> identificador [tamanho]
Onde: 
Identificador= nome da variável
Tamanho = quantidade de posições
Exemplos:
Float Notas[10];
Int Sorteio[500];
String Nome[50];
Vetores unidimensionais: atribuição direta de valores
Exemplo: Calcular e apresentar a média geral de uma turma de 8 alunos. A média a ser obtida deve ser a média geral de cada aluno obtida durante o ano letivo.
Aluno
Nota1
Nota2
Nota3
Nota4
Média
1
4.0
6.0
5.0
3.0
4.5
2
6.0
7.0
5.0
8.0
6.5
3
9.0
8.0
9.0
6.0
8.0
4
3.0
5.0
4.0
2.0
3.5
5
4.0
6.0
6.0
8.0
6.0
6
7.0
7.0
7.0
7.0
7.0
7
8.0
7.0
6.0
5.0
6.5
8
6.0
7.0
2.0
9.0
6.5
Vetores unidimensionais: atribuição direta de valores
No caso do exemplo do cálculo da média dos 8 alunos, teremos então uma única variável indexada contendo todos os valores das 8 notas. Isto seria representado da seguinte forma:
Declaração: 
MD: vetor [1..8] de real;
Atribuição direta:
MD[1]  4.5
MD[2]  6.5
MD[3]  8.0
MD[4]  3.5
MD[5]  6.0
MD[6]  7.0
MD[7]  6.5
MD[8]  6.0
Observe que o nome é um só, o que muda é a informação indicada dentro dos colchetes. A esta informação dá-se o nome de índice, sendo este o endereço onde o elemento está armazenado.
Vetores unidimensionais: atribuição de dados lidos
A leitura de um vetor é processada passo a passo, um elemento por vez. Para isso é necessário a utilização de um laço de repetição.
A instrução de leitura é leia seguida da variável mais o índice.
Exemplo:
Para X de 1 ate 8 faca
	leia(MD[X]);
fimpara
X  1;
Enquanto (X<=8) faca
	leia(MD[X]);
	X  X + 1;
fimenquanto
Vetores unidimensionais: impressão dos dados do vetor
O processo de escrita de uma matriz é bastante parecido com o processo de leitura de seus elementos.
Para esta ocorrência deve ser utilizada a instrução escreva seguida da indicação da variável e seu índice.
Exemplo:
Para X de 1 ate 8 faca
	escreva(MD[X]);
fimpara
X  1;
Enquanto (X<=8) faca
	escreva(MD[X]);
	X  X+1;
fimenquanto
Vetores unidimensionais: impressão dos dados do vetor
Escrevendo o vetor na ordem inversa.
Exemplo:
Para X de 8 ate 1 passo -1 faca
	escreva(MD[X]);
Fimpara
X  8;
Enquanto (X >=1) faca
	escreva(MD[X]);
	X  X - 1;
fimenquanto
Vetores unidimensionais: operações com vetor
É possível executar operações matemáticas com os dados armazenados no vetor. 
No caso do nosso exemplo é necessário calcular a média geral de uma turma de 8 alunos. Portanto será necessário somar a média de cada aluno e dividir pela quantidade de alunos.
Exemplos:
Para X de 1 ate 8 faca
	soma  soma + MD[X];
Fimpara
Media  soma/8;
X  1;
Enquanto (X<=8) faca
 soma  soma + MD[X];
 X  X+1;
Fimenquanto
Media  soma/8;
Vetores unidimensionais: operações com vetor
Outros tipos de operações que são possíveis com vetores: subtração, multiplicação, união, divisão entre outros.
Exemplos:
Subtração
Para y de 1 ate 10 faca
	vetS[y]  vet1[y] – vet2[y]
fimpara
Multiplicação:
Para y de 1 ate 10 faca
	vetS[y]  vet1[y] * 20
Fimpara
União:
Para y de 1 ate 5 faca
	 vetS[y]  vet1[y]
Fimpara
X  1;
Para y de 6 ate 10 faca
 vetS[y]  vet2[X]
 X  X+1
fimpara
Vetores unidimensionais: exemplo completo
algoritmo "Vetor_exemplo1"
var
 vet: vetor [1..10] de inteiro //declaração de variável
 i: inteiro
 inicio	
 para i de 1 ate 10 faca
 vet[i]  i * 2 //atribuição direta
 fimpara
 para i de 1 ate 10 faca
 escreva (“Valores do vetor: “,vet[i])
 fimpara
fimalgoritmo
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
i=10
2
4
6
8
10
12
14
16
18
20
#include <iostream>
using namespace std;
main(){
 int vet[10],i; //declaração de variável
 for(i=1;i<=10;i++)
 vet[i]= i * 2; //atribuição direta
 for(i=1;i<=10;i++)
 cout<<"Valores do vetor ["<<i<<"]: "<<vet[i]<<endl;
 system("pause");
}
Vetores unidimensionais: exemplo completo
algoritmo "Vetor_exemplo2"
 var
 vet: vetor [1..10] de inteiro //declaração de variável
 i: inteiro
 inicio
 para i de 1 ate 10 faca
 escreva ("Digite um numero para o Vetor: ")
 leia (vet[i]) //atribuição de dados lidos
 fimpara
 para i de 1 ate 10 faca
 escreva (“Valores no vetor: “,vet[i])
 fimpara
fimalgoritmo
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
i=10
6
15
22
1
0
9
31
75
105
88
#include <iostream>
using namespace std;
main(){
 int vet[10],i; //declaração de variável
 for(i=1;i<=10;i++){
 cout<<"Valores do vetor ["<<i<<"]: ";
 cin>>vet[i]; //atribuição de dados lidos
 }
 for(i=1;i<=10;i++)
 cout<<"Valores do vetor ["<<i<<"]: "<<vet[i]<<endl;
 system("pause");
}
Vetores unidimensionais: exemplo completo
Algoritmo “media_turma”
Var
 MD: vetor [1..8] de real; //declaração de variável
 soma, media: real;
 X: inteiro;
Inicio
 para X de 1 ate 8 faca
 escreva(“Informe a média do aluno:”);
	 leia(MD[X]); //fazendo leitura das médias dos alunos
 soma  soma + MD[X]; //somando as médias
 fimpara
 media  soma/8;
 para X de 1 ate 8 faca
 escreva(“Média : “,X, “:”,MD[X]); //escrevendo na tela as médias informadas
 fimpara
 escreva(“Media geral da turma = “, media);
Fimalgoritmo
X=1
X=2
X=3
X=4
X=5
X=6
X=7
X=8
4.5
6.5
8.0
3.5
6.0
7.0
6.5
6.0
Vetores unidimensionais: exemplo completo
#include <iostream>
using namespace std;
main(){
 float md[10]; //declaração de variável
 float soma,media;
 soma=0;
 int x;
 for(x=1;x<=8;x++){
 cout<<"Informe a media aluno: ";
 cin>>md[x]; //atribuição de dados lidos
 soma=soma+md[x];
 }
 media=soma/(x-1);
 for(x=1;x<=8;x++)
 cout<<"Media ["<<x<<"]: "<<md[x]<<endl;
 cout<<"Media geral da turma= "<<media<<endl;
 system("pause");
}
X=1
X=2
X=3
X=4
X=5
X=6
X=7
X=8
4.5
6.5
8.0
3.5
6.0
7.0
6.5
6.0
Exercícios 
Desenvolver um algoritmo que efetue a leitura de 10 elementos inteiro de um vetor A. Construir o vetor B de mesmo tipo, observando a seguinte lei de formação: se o valor do índice for par, o valor do vetor A deverá ser multiplicado por 5; sendo impar, deverá ser somado com 5. Ao final, mostrar os conteúdos dos 2 vetores.Ler dois vetores A e B com 20 elementos. Construir um vetor C, onde cada elemento é a subtração do elemento de A com B.
Ler dois vetores, vetor A com 20 elementos e B com 30 elementos. Construir o vetor C, sendo este a união dos dois vetores. Desta forma, C deverá ter a capacidade de armazenar 50 elementos.
Vetores bidimensionais: Matriz
Os vetores, ou variáveis compostas unidimensionais, têm como principal característica a necessidade de apenas um índice para endereçamento. Uma estrutura que precise de mais de um índice será denominada estrutura composta multidimensional.
As variáveis compostas multidimensionais, mais utilizadas são as bidimensionais, ou matrizes.
Geralmente, utilizamos matrizes em situações que precisam de linhas e colunas para a identificação de elementos.
Exemplo de uma matriz A(3x2)
A = 
Os números subscritos indicam os índices dos elementos da matriz.
A11
A12
A21
A22
A31
A32
Vetores bidimensionais: Matriz
Matriz - Declaração
Declaração de uma matriz em português estruturado
<identificador>: vetor [<número de linhas>, <número de colunas>] de <tipo>;
Onde:
	Identificador: nome da variável
	números de linhas: quantidade de linhas da matriz
	número de colunas: quantidade de colunas da matriz
Exemplos:
A:vetor [1..3,1..2] de real;
mat:vetor [1..10,1..5] de inteiro;
Nome:vetor [1..2,1..3] de caractere;
	
Matriz - Declaração
Declaração de uma matriz em C++
<tipo> identificador [<número de linhas>][ <número de colunas>] ;
Onde:
	Identificador: nome da variável
	números de linhas: quantidade de linhas da matriz
	número de colunas: quantidade de colunas da matriz
Exemplos:
Float A[3][2];
Int mat[10][5];
String Nome[2][3];
	
Matriz – atribuição de matriz
A atribuição é uma das formas de qualquer variável armazenar algum valor. Como não operamos diretamente com a matriz, somente seus elementos armazenam valores numa atribuição.
Exemplos:
Exemplo:
mat[3,4] 3.75 
Exemplo:
Para (i de 1 ate 10) faca
	Para (j de 1 ate 10) faca
		Se (i = j) entao
			x[i,j]  1
		Senao
			x[i,j]  0
		FimSe
	FimPara
FimPara
Matriz – leitura de matriz
Utiliza-se dois laços para a leitura de matrizes.
Exemplo:
Algoritmo “Leitura_matriz”
var 
	i, j: inteiro
	M: vetor [1..2,1..3] de real
Inicio
	Para i de 1 ate 2 faca // controla quantidade de linhas
		Para j de 1 ate 3 faca //controla quantidade de colunas
		 Escreva (“Entre com o elemento da linha ”, i ,“coluna”, j, “ : ” )
		 Leia (M[i, j])
		FimPara
	FimPara
Fimalgoritmo
Matriz – leitura de matriz
Utiliza-se dois laços para a leitura de matrizes.
Exemplo:
#include <iostream>
using namespace std;
main(){
 int m[2][3]; //declaração de variável
 int i,j;
 for(i=1;i<=2;i++){
 for(j=1;j<=3;j++){
 cout<<"Entre com elemento da linha: "<<i<<" coluna "<<j<<": ";
 cin>>m[i][j]; //atribuição de dados lidos
 }
	}
 system("pause");
}
Matriz – escrita de matriz
É semelhante a leitura de matrizes.
Algoritmo “Leitura_e_escrita_matriz”
var 
	i, j: inteiro;
	M: vetor [1..2,1..3] de real
Inicio
	Para i de 1 ate 2 faca
		Para j de 1 ate 3 faca
		 Escreva (“Entre com o elemento da linha ”, i, “coluna”, j, “ : ” )
		 Leia (M[i, j])
		FimPara
	FimPara
	Para i de 1 ate 2 faca
		Para j de 1 ate 3 faca
		 Escreva( “M[”, i, “,”, j, “] =”, M[i,j] )
		FimPara
	FimPara
Fimalgoritmo
Matriz – escrita de matriz
É semelhante a leitura de matrizes.
#include <iostream>
using namespace std;
main(){
 int m[2][3]; //declaração de variável
 int i,j;
 for(i=1;i<=2;i++){
 for(j=1;j<=3;j++){
 cout<<"Entre com elemento da linha: "<<i<<" coluna "<<j<<": ";
 cin>>m[i][j]; //atribuição de dados lidos
 }
 }
 for(i=1;i<=2;i++){
 for(j=1;j<=3;j++){
 cout<<"M["<<i<<","<<j<<"] = "<<m[i][j]<<endl;
 }
 }
 system("pause");
}
Exercícios
Escreva um algoritmo que armazene valores inteiros em uma matriz 3 x 4 e calcule e mostre a média aritmética dos valores digitados. 
Faça um algoritmo que inverta uma matriz de tamanho 3 x 3, ou seja, dê sua matriz transposta.
Faça um algoritmo que leia uma matriz 4x4 e mostra a escrita de sua diagonal principal.

Outros materiais