• Nenhum resultado encontrado

21 Variáveis estruturadas

N/A
N/A
Protected

Academic year: 2022

Share "21 Variáveis estruturadas"

Copied!
35
0
0

Texto

(1)

21 – Variáveis estruturadas

São variáveis compostas por outras variáveis.

O tipo de variável estruturada mais comum é o vector (array) onde os componentes

(variáveis) são todos do mesmo tipo, por exemplo: um vector de reais ou um vector de inteiros.

Também temos a estrutura ou registo

(record) onde os componentes podem ser de tipos diferentes.

(2)

22 – Vectores

Um vector (array) é uma “variável” com um

número fixo de elementos (também variáveis!), onde estes elementos são todos de um mesmo tipo, ou seja é uma linha (ou coluna) com um quantidade de valores.

(3)

Declaração de um vector:

tipo nome [tamanho];

onde:

tipo – pode ser inteiro, real ou caracter (int, float,char)

tamanho – é o número de elementos

(4)

Exemplos:

...

int v [10];

...

“é a declaração de um vector de 10 elementos inteiros”

(5)

Exemplos:

...

float x [8];

...

“é a declaração de um vector de 8 elementos reais”

(6)

Exemplos:

...

char ch [30];

...

“é a declaração de um vector de 30 caracteres”

(7)

Índices

Um vector de 10 elementos inteiros:

int v [10];

são 10 variáveis (inteiras) com um mesmo nome !

Como poderemos “trabalhar” com cada uma destas variáveis individualmente ?

(8)

Índices

A resposta é:

Através de índices, que indicam a posição de cada um dos elementos.

Um vector, de 10 elementos, tem os índices de 0 a 9 onde os elemento são referenciados por: v [0] , v [1] , v [2] , v [3] , v [4] , v [5] , v [6] , v [7] , v [8] e v [9] .

(9)

Índices

Ou seja o nome do vector e o respectivo índice entre parênteses rectos.

NÃO confundir com a declaração!!!

Observe que diferente do C , em muitas

linguagens os índices começam em 1 (um)!

(10)

Como trabalhar com vectores?

Cada elemento é uma variável (simples)!

Ou seja podemos trabalhar da mesma maneira, atribuir , ler , escrever, apenas temos que indicar o índice do elemento.

(11)

Exemplos:

...

int v [10];

...

v [0] = 4;

v [2] = 3;

...

(12)

Aqui são atribuídos:

- o valor inteiro 4 para o elemento de índice 0 (o primeiro!) e

- o valor inteiro 3 para o elemento de índice 2 do vector v.

(13)

Exemplos:

...

int i; float x [5];

x [4] = 2.1;

i = 2;

printf(“Por favor escreva um número\n”);

scanf(“%f”,&x[i]);

printf(“O quinto elemento é %f\n”,x[4] );

...

(14)

Aqui é atribuído o valor real 2.1 para o elemento de índice 4 ,

lido, do terminal, um valor real para o

elemento de índice i (que neste momento vale 2),

escrito, no terminal, o valor do elemento de índice 4 (o quinto) do vector x.

(15)

Observação:

A não ser em situações especiais,

trabalhamos com os elementos de um vector individualmente.

Ou seja com os índices!

(16)

Observação:

Para:

... int v[10]; ...

É errado!

... v = 2; ...

... scanf(“%d”,&v ); ...

... printf(“%d\n”,v ); ...

Pois faltam os índices!

(17)

CUIDADO !!!

...

int v [5];

v [5] = 2;

...

ESTÁ ERRADO !!!

O vector v só tem 5 elementos e

v [5] não existe, pois seria o sexto elemento!

(18)

23 - A utilização de repetições

De uma maneira geral o trabalho com

vectores envolve instruções de repetição.

Suponha que queremos escrever os

elementos de um vector de tamanho 1000, ou fazemos:

(19)

...

escrever

“O 0 é”,v[0]

escrever

“O 1 é”,v[1]

escrever

“O 998 é”,v[998]

escrever

“O 999 é”,v[999]

(20)

...

printf(“O de índice 0 é %d\n”,v[0]);

printf(“O de índice 1 é %d\n”,v[1]);

...

...

printf(“O de índice 998 é %d\n”,v[998]);

printf(“O de índice 999 é %d\n”,v[999]);

...

(21)

O que não seria “razoável” pois nosso

programa teria mais do que mil instruções (sem necessidade).

Isto pode ser resolvido utilizando-se uma instrução de repetição, que por sabermos a quantidade de vezes que vamos repetir,

o for é o mais indicado.

(22)

Fluxograma:

i <=999 sim não

i = 0

escrever

“O i é”,v[i] i = i + 1

(23)

...

for ( i = 0; i <= 999; i = i +1)

printf(“O de índice %d é %d \n”,i,v[i]);

...

(24)

Exemplos:

Leitura de um vector de 10 elementos do terminal.

(25)

sem mensagens:

...

int v[10];

...

for ( i = 0; i <= 9; i = i +1) scanf(“%d”,&v[i]);

...

(26)

com mensagens:

...

int v[10];

...

for ( i = 0; i <= 9; i = i +1) {

printf(“Pf o de índice %d\n”,i);

scanf(“%d”,&v[i]);

} ...

(27)

Exemplos:

Teste dos elementos do vector (anterior) para vermos se são nulos (igual a zero).

(28)

...

for ( i = 0; i <= 9; i = i +1) if ( v[i] == 0)

printf(“O de índice %d é nulo\n”,i);

...

(29)

Exemplos:

Cópia dos elementos do vector (anterior) para um segundo vector.

(30)

...

int v[10], w[10];

...

...

for ( i = 0; i <= 9; i = i +1) w[i] = v[i] ;

...

(31)

Observe que:

- o vector w deve ser do mesmo tipo do que v e de tamanho igual (ou maior!).

- o vector v já deve ter os valores atribuídos antes da atribuição para w .

(32)

Exemplos:

Escrita do vector w (mostrar no terminal os elementos).

(33)

Todos os elementos mesma linha ...

for ( i = 0; i <= 9; i = i +1) printf(“%d”,w[i]);

...

(34)

Um elemento por linha ...

for ( i = 0; i <= 9; i = i +1) printf(“%d\n”,w[i]);

...

(35)

Observação:

Todos os exemplos anteriores utilizaram o mesmo for !!!

Referências

Documentos relacionados

Verificada a efetividade da proposta, a Comissão de Licitações declarou vencedor o licitante Francisco Souza Lima Helm, sendo o total do item 14 licitado o valor de

Com efeito, à semelhança da estratégia adoptada na investigação e publicação sistemática do espólio exumado no povoado pré ‑histórico de Leceia pelo escultor Álvaro de

BARHAM, 1982 (2), define as diferenças conceituais e campos de ação, tanto para en­ sino como investigação, entre Biomecânica e Cinesiologia Mecânica. Não trataremos

A meta prevista para este indicador era garantir a realização de exames complementares em dia a 100% de hipertensos e diabéticos do programa, por tanto não foi atingida,

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Reconhecimento de face utilizando banco de imagens monocromáticas e coloridas através dos métodos da análise do componente principal (PCA) e da Rede Neural Artificial (RNA)

potencialmente porque não são entendidos como tal pela maioria da população e porque não estão classificados — e, em parte, a uma lacuna consistente relativa à formação de

Mediante o impacto do paciente com o ambiente do centro cirúrgico, a equipe de enfermagem deve estar voltada para o aspecto humano do atendimento, centrando suas