Você está na página 1de 18

ESTRUTURA DE DADOS E

ALGORITIMOS I
Aula 1
Sumrio

1. Dados Homogneos
Vectores
Exemplo em C
Exemplo em PHP
Exemplo em C#

Matrizes

Dados Homogneos
dado como uma estrutura de dados, que utiliza
somente um tipo de dado, em sua definio
conhecida como dados homogneos. Variveis
compostas homogneas correspondem a posies
de memria, identificadas por um mesmo nome,
individualizado por ndices e cujo contedo
composto do mesmo tipo. Sendo os vetores
(tambm conhecidos como estruturas de dados
unidimensionais) e as matrizes (estruturas de
dados bidimensionais) os representantes dos
dados homogneos.
Dados Homogneos - Vectores
O vector uma estrutura de dados linear
que necessita de somente um ndice para
que seus elementos sejam endereados.
utilizado para armazenar uma lista de
valores do mesmo tipo, ou seja, o tipo
vetor permite armazenar mais de um valor
em uma mesma varivel. Um dado vector
definido como tendo um nmero fixo de
clulas idnticas (seu contedo dividido
em posies).
Dados Homogneos - Vectores
Cada clula armazena um e somente
um dos valores de dados do vector.
Cada uma das clulas de um vetor
possui seu prprio endereo, ou ndice,
atravs do qual pode ser referenciada.
Nessa estrutura todos os elementos so
do mesmo tipo, e cada um pode
receber um valor diferente
[ 3, 1, 4].
Dados Homogneos - Vectores
ALGUMAS CARACTERSTICAS DO TIPO vector[]:
Alocao esttica (deve-se conhecer as dimenses da estrutura no momento da
declarao)
Estrutura homognea
Alocao seqencial (bytes contguos)
Insero/Excluso
Realocao dos elementos
Posio de memria no liberada
Dados Homogneos - Vectores
Dados Homogneos - Vectores
Dados Homogneos - Vectores
/* Clculo da media de 10 nmeros reais */ Linguagem C
#include <stdio.h>
int main ( void )
{
float v[10]; /* declara vetor com 10 elementos */
float med; /* variveis para armazenar a mdia e a varincia
*/
int i; /* varivel usada como ndice do vetor */
/* leitura dos valores */
for (i = 0; i < 10; i++) /* faz ndice variar de 0 a 9 */
scanf("%f", &v[i]); /* l cada elemento do vetor */
/* clculo da mdia */
med = 0.0; /* inicializa mdia com zero */
for (i = 0; i < 10; i++)
med = med + v[i]; /* acumula soma dos elementos */
med = med / 10; /* calcula a mdia */
printf ( "Media = %f \n", med,);
return 0;
}
//Obs: Os vetores tambm podem ser inicializados na declarao:
int v[5] = { 5, 10, 15, 20, 25 };
/* Clculo da media de 10 nmeros*/ Linguagem PHP
<?php
$vector = array(5,10,15,25);
$soma=0;
$media=0;
$tamanho=sizeof($vector);
for ($i=0; $i<$tamanho; $i++)
$soma=$soma+$vector[$i];
$media = $soma/$tamanho;
echo "A soma $soma <br>";
echo "A media $media";
?>
/* Clculo da media de n nmeros */ - Linguagem C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace LeituradeNElementos
{
class Program
{
static void Main(string[] args)
{
float soma =0;
float media=0;

Console.WriteLine("Entre o numero de elementos");
int n = Convert.ToInt16(Console.ReadLine());
int[] v = new int[n];

Console.WriteLine("Entre os elementos");
for (int i = 0; i <= n - 1; i++)
v[i] = Convert.ToInt16(Console.ReadLine());

for (int i = 0; i <= n - 1; i++)
soma = soma + v[i];
media = soma / n;

Console.WriteLine("A soma {0}",soma);
Console.WriteLine("A mdia {0}", media);
}

}
}

/* Programa para a Leitura e escrita de N Elementos */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LeituradeNElementos
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Quantos elementos tem o vector");
int n = Convert.ToInt16(Console.ReadLine());
int[] A = new int[n];
for (int i = 0; i <= n -1 ; i++)
{
Console.Write("Elemento {0} =", i+1);
A[i] = Convert.ToInt16(Console.ReadLine());

}
foreach (int Elemento in A)
Console.WriteLine("{0, 4}", Elemento);

}
}
}

Dados Homogneos - Matrizes
Uma matriz um arranjo
bidimensional ou multidimensional
de alocao esttica e seqencial.
A matriz uma estrutura de dados
que necessita de um ndice para
referenciar a linha e outro para
referenciar a coluna para que seus
elementos sejam endereados.
Dados Homogneos - Matrizes
Para uma matriz de 2x2, o algoritmo para calcular as
posies da memria :




Declarao em C: float [2][2];
Entretanto, esta definio permite armazenar 4 elementos na matriz.
Dados Homogneos - Matrizes
Os elementos da matriz so
acessados com indexao dupla:
mat[i][j]. O primeiro ndice, i,
acessa a linha e o segundo, j,
acessa a coluna. o elemento da
primeira linha e primeira coluna
acessado por mat[0][0].
Dados Homogneos - Matrizes
As matrizes tambm podem ser inicializadas na declarao
(C#):

float mat[4][3]
={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};

Ou podemos inicializar seqencialmente:

float mat[4][3] = {1,2,3,4,5,6,7,8,9,10,11,12};
Continuo