Anda di halaman 1dari 9

Curso de Programao em

C++
Universidade Federal do Cear
Departamento de Engenharia Estrutural
e Construo Civil
Prof: Evandro Parente Junior
Monitor: Renato Peixoto
Abril/2007

Vetores e matrizes

Matrizes:

Array bidimensional (dois ndices).


Corresponde ao conceito matemtico
de matriz, com linhas e colunas.
O primeiro ndice indica a linha e o
segundo a coluna.

// Declarao de uma matriz com 5 linhas e 20 colunas.


double matDouble[5][20];

Vetores e matrizes

Matrizes
Supondo
que 2 materiais e 3 caractersticas de cada um
deles estejam armazenadas em uma matriz
bidimensional, a representao seria a seguinte:
Caractersticas
Material 1

0
1

Material 2
0

Neste caso, para referenciar ao material 1 e sua


caracterstica 3 devemos usar nomeMatriz[0][2].

Vetores e matrizes

Arrays multidimensionais:

Declarao
tipo identificador[tamanho1][tamanho2][tamanhon];
// Declarao de uma matriz de inteiros com 3 dimenses
int matInt[10][50][30] ;
// Declarao de uma matriz de floats com 4 dimenses
float matFloat[100][100][20][6] ;

Matrizes
#include <iostream>
using namespace std;
int main(void)
{
int A[2][3]={2,3,4,5,2,0};
int B[2][3]={0,23,2,4,0,6};
int C[2][3];
// Soma as matrizes.
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; j++) C[i][j] = A[i][j] + B[i][j];
// Imprime o resultado.
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++) cout << C[i][j] << "
cout << "\n";
}
return(0);
}

";

Apontadores (ponteiros)

So variveis que armazenam


endereos de memria.

Apontam para o endereo de outras


variveis.

Sintaxe:

int *p;
// p um ponteiro para inteiro
double *x; // x um ponteiro para double

Operadores associados:

& retorna o endereo de uma varivel.


* retorna o contedo de um endereo de
memria.

Apontadores (ponteiros)
#include <iostream>
using namespace std;
int main(void)
{
int a = 10;
// cria uma varivel inteira a
int *p;
// cria um ponteiro para inteiro
cout << "Valor inicial de a: " << a << "\n";
p = &a;
*p = 8;

// faz apontar para a


// altera o contudo do endereo apontado por p

cout << "Valor do ponteiro p: " << p << "\n";


cout << "Conteudo do endereco apontado por p: " << *p << "\n";
cout << "Valor final de a: " << a << "\n";
return(0);
}
Valor inicial de a: 10
Valor do ponteiro p: 0x22ff74
Conteudo do endereco apontado por p: 8
Valor final de a: 8

Apontadores (ponteiros)

Operaes aritmticas:

Igualdade

p1 = p2
// p1 aponta para o mesmo endereo de
p2
*p1 = *p2 // copia o contedo de p2 para p1

Incremento e decremento

Usandos para percorrer arrays.


p++; // p = p + sizeof(tipo_de_p)
p--; // p = p - sizeof(tipo_de_p)
Na prtica p++ faz p apontar para o prximo
elemento do array.

Apontadores (ponteiros)

Aplicaes mais importantes:

Alocao dinmica de memria.


Passagem de parmetros para funes.

Alocao dinmica de memria:

Utilizada quando as dimenses de um array


so conhecidas apenas durante a execuo.
Criao de estruturas de dados mais
complexas:

Pilhas, filas, listas, rvores, ...

Utilizao de classes
(herana/polimorfismo).

Anda mungkin juga menyukai