Você está na página 1de 18

PROGRAMAO I

UNIDADE 5

Tipos de Dados Simples


2

Tipos de dados simples: permitem armazenar um nico

valor de cada vez Exemplo:

var
a: integer; b: real; c: char;

begin readln(a); b:= a / 2; c: = # ;

.... end.

Problema: o que fazer se necessitarmos armazenar 100

valores?
Programao I

10/08/2010

Tipos de Dados Estruturados


3

Tipos de dados estruturados: permitem

armazenar um conjunto de valores de um mesmo tipo de dado, simultaneamente Exemplo:

O tipo de dado STRING permite declarar variveis que armazenam seqncias de at 255 caracteres e podem ser realizadas operaes bsicas como: atribuio: Ex: clube:= 'Gremio'; leitura: Ex: readln(nome); escrita: Ex: write/writeln(nome);

Programao I

10/08/2010

Caractersticas de Strings
4

Todos os elementos so do mesmo tipo: char

Cada elemento pode ser acessado individualmente

referncia indica nome[indice] Exemplo: for k:= 1 to 6 do writeln( clube[3] ); { exibe uma letra por linha} Questo: podemos criar estruturas similares para diferentes tipos de dados (integer, real...)?

Programao I

10/08/2010

Estruturas de Dados Homogneas


5

As variveis compostas homogneas, conhecidas

como arrays, variveis indexadas, variveis subscritas ou tabelas em memria, armazenam conjuntos de elementos do mesmo tipo de dado, acessados atravs de um ndice. Os arrays podem ser:

Unidimensionais - possuem apenas uma dimenso (tambm chamados de vetores). Multidimensionais possuem mais de uma dimenso. Os mais comumente usados so os arrays de duas dimenses, tambm chamados de matrizes.
10/08/2010

Programao I

Estruturas de Dados Homogneas


6

Declarao de Array unidimensional: Vetor

VAR nome:array[indInicial..indFinal] OF <tipo>; nome o nome ou identificador do vetor; indInicial e indFinal so constantes inteiras ou caracteres ordinais.; <tipo> o tipo de dados dos elementos do vetor. Exemplos:
var notas: array[1..3] of real; 7.8 1
Programao I

6.7 2

9.3 3

const n=6; var v2: array[1..n] of integer;

10/08/2010

Estruturas de Dados Homogneas


7

Declarao de Array bidimensional :Matriz

VAR nome:array[indInicial1..indFinal1, inddInicial2..indInicial2] OF <tipo>;


nome o nome ou identificador da matriz; indInicial1 e indFinal1 so constantes inteiras ou

caracteres ordinais indicando a variao da primeira dimenso (ndice de linha); indInicial2 e indFinal2 so constantes inteiras ou caracteres ordinais indicando a variao da segunda dimenso (ndice de coluna);
<tipo> o tipo de dados dos elementos da matriz.

Programao I

10/08/2010

Estruturas de Dados Homogneas


8

Exemplo:

var tabela: array[1..2,1..3] of real;


1
2 7.8 2.5 1 1 6.7 4.2 2 2 9.3 8.3 3 3

Programao I

10/08/2010

Estruturas de Dados Homogneas


9

Declarao do vetor usando um tipo definido pelo

usurio (Type). Exemplo:


var notas: array[1..3] of real;
const n=6; var v2: array[1..n] of integer;

type vetor = array[1..3] of real; var notas: vetor;

7.8 1
Programao I

6.7 2

9.3 3

const n=6; type vet = array[1..n] of integer; var v2: vet;


10/08/2010

Estruturas de Dados Homogneas


10

Declarao de matriz usando o tipo definido pelo

usurio: Type
var tabela: array[1..2,1..3] of real;

type matriz = array[1..2,1..3] of real; var tabela: matriz;

Programao I

10/08/2010

Estruturas de Dados Homogneas


11

Forma de declarar uma matriz usando Const e Type


const lin=2; col=3; var tabela: array[1..lin, 1..col] of integer;

const lin=2; col=3; type matriz = array[1..lin,1:col] of integer; var tabela: matriz;
Programao I

10/08/2010

Estruturas de Dados Homogneas


12

Acesso aos elementos de Array


Vetor: atravs da referncia nome[indice]
Exemplo de leitura de vetor
N:= 3; {*** leitura de um conjunto de dados ***} for i:= 1 to n do readln(v1[i]);

Exemplo de exibio/impresso de vetor


{*** exibindo um conjunto de dados ***} for i := 1 to n do write(v1[i]:5); writeln;
Programao I

10/08/2010

Estruturas de Dados Homogneas


13

Acesso aos elementos de um Array


Matriz: atravs da referncia nome[linha,coluna]

Exemplo de leitura de matriz:

for i := 1 to 2 do for j := 1 to 3 do readln( tabela[i, j] );

Programao I

10/08/2010

Estruturas de Dados Homogneas


14

Exemplo de exibio/impresso de matriz

{*** impressao da matriz, linha por linha ***} for l := 1 to 2 do begin for k := 1 to 3 do write(mat[l,k]:5); {mesma linha} writeln; {nova linha} end;
7.8 2.5
Programao I

6.7 4.2

9.3 8.3
10/08/2010

Estruturas de Dados Homogneas


15

Operaes com elementos do vetor Exemplo: exibir somente os valores maiores de que 5.0 e sua posio (ndice)
{*** impressao dos valores > 5 ***} for i:= 1 to n do if v1[i] > 5.0 then write('Indice ', i, ' Valor = ', v1[i]);

7.8

4.5

9.3

Programao I

10/08/2010

Estruturas de Dados Homogneas


16

Operaes com elementos da matriz Exemplo: exibir somente os valores maiores de que 5.0 e sua posio (linha e coluna)

write('Os valores maiores do que 5 sao:'); for j:= 1 to 2 do for k:= 1 to 3 do if mat[l,k] > 5 then write(Linha: , j:3, Coluna:, k:3, mat[j,k]:5);
Programao I

10/08/2010

Arrays de Strings
17

Ex.1: Criar arrays com nomes de alunos e suas

notas

const n=3; var nomes: array[1..n] of String[10]; notas: array[1..n] of real; i: integer;

Ex.2: Exibir o nome do aluno e sua nota, se nota > 6


for i:=1 to n do if notas[i] > 6.0 then writeln(nomes[i], notas[i]:4:1);
Programao I

10/08/2010

Arrays com Valores Constantes


18

program teste; const

Digitos: array[0..9] of Char = ('0', '1', '2', '3', '4', '5','6', '7', '8', '9'); Vogais: array[0..9] of Char = 'aeiou'; Dias: array[1..7] of String[3]=('seg','ter','qua', 'qui','sex','sab','dom'); begin writeln(Digitos[1]); { exibe 1} writeln(Vogais[1]); { exibe e} writeln(Dias[1]); { exibe seg} end.
10/08/2010

Programao I