• Nenhum resultado encontrado

vetor matriz

N/A
N/A
Protected

Academic year: 2021

Share "vetor matriz"

Copied!
28
0
0

Texto

(1)

ALGORITMO E ESTRUTURAS

DE DADOS

Engenharia Elétrica

(2)

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.

(3)

Ementa

Vetores

Vetores unidimensionais  Vetores bidimensionais  Cadeias de caracteres

Estruturas

Definição de estruturasEstruturas simplesConjunto 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

(4)

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.

(5)

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

(6)

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];

(7)

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

(8)

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.

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.

(9)

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

(10)

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

(11)

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

(12)

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;

(13)

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:

1)

Subtração

Para

y

de 1 ate 10 faca

vetS[

y

]  vet1[

y

] – vet2[

y

]

fimpara

2)

Multiplicação:

Para

y

de 1 ate 10 faca

vetS[

y

]  vet1[

y

] * 20

Fimpara

3)

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

(14)

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"); }

(15)

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"); }

(16)

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

(17)

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

(18)

Exercícios

1.

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.

2.

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.

3.

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.

(19)

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.

(20)

Exemplo de uma matriz A(3x2)

A =

Os números subscritos indicam os índices

dos elementos da matriz.

A

11

A

12

A

21

A

22

A

31

A

32

(21)

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;

(22)

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];

(23)

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:

1)

Exemplo:

mat[3,4] 3.75

2)

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

(24)

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

(25)

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"); }

(26)

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

(27)

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"); }

(28)

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

Referências

Documentos relacionados

(11) Reservatórios de água tratada: A água tratada é levada até os reservatórios (acumulação de água para atendimento ao consumo em horários de pico,

Albuquerque / neilzacastro@gmail.com AGRO5016 Cultivo de Plantas Industriais I 45 h Gibran da Silva Alves / gibranalves@yahoo.com.br AGRI5008 Hidrologia Agrícola 60 h

Meus livros: você terá acesso ao conteúdo digital de cada livro cadastrado (jogos, simuladores, infográficos e audiovisuais), bem como o arquivo em PDF do livro. Lembre-se que

Diante desse questionamento, emergem três hipóteses: a a criança vivencia, na escola, práticas sociais de linguagens orais e escritas que são responsáveis pela sua

de timbres heterogêneos percebidos. 10 Tambu e Tambi são claves ou bastões de madeira.. Gostaríamos apenas de enfatizar que, a partir da tensão que estabelece a distinção entre

No segundo dia de coleta, os atletas fizeram um teste para medir a duração do tempo limite da velocidade máxima no consumo máximo de oxigênio atingido no

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of

O foco principal deste trabalho é voltado para observação e caracterização das frequências naturais e modos de vibrar de um modelo estrutural em escala de um