vectores - autenticação · maria helena braz conceitos básicos de programação tipos de dados...

42
Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores matrizes Tipos estruturados Estruturas (registos) Vectores e matrizes são estruturas homogéneas. Uma estrutura homogénea é uma sequência linear de elementos de mesmo tipo, que são referenciados por um índice. Essas estruturas podem ter uma (vectores) ou mais dimensões (matrizes), cujos elementos podem ser de tipos caracter, inteiro, real ou uma estrutura.

Upload: truongthuy

Post on 21-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Tipos de dados estruturados

vectores ≡≡≡≡ matrizesTipos estruturados

Estruturas (registos)

Vectores e matrizes são estruturas homogéneas. Uma estrutura homogénea é uma sequência linear de elementos de mesmo tipo, que são referenciados por um índice. Essas estruturas podem ter uma (vectores) ou mais dimensões (matrizes), cujos elementos podem ser de tipos caracter, inteiro, real ou uma estrutura.

Page 2: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Tipos de dados estruturados - VectoresExemplo: variável para armazenar notas de 50 alunos

Declaração: float [] notas = new float [50]

Exemplos de utilização:- somar 2 valores a cada "nota" no vector notas;- somar 2 vectores;

Matrizes (i.e. vectores de dimensão superior a 1):- Exemplos:

int[][] aluno = new int[50][2];

aluno[3][0]=35354;

aluno[3][1]=16;

O 1º valor para um índice é 0

Page 3: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Exemplo:class ExemploVector

{static void Main(){int [] notas = new int[10] {5,4,6,7,6,8,9,6,7,8}int i,soma=0;for (i=0; i<10; soma+=notas[i+ +]);

System.Console.WriteLine(“Media = {0}”, soma/10.0);

for (i=9; i>=0; i––)System.Console.WriteLine(“Nota {0}”,

notas[i]);}

}

Tipos de dados estruturados - Vectores

Page 4: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Tipos de dados estruturados

vectores ≡ matrizesTipos estruturados

estruturas

Na linguagem C#, uma estrutura heterogénea é referenciada como - structUma estrutura heterogénea de dados é um agregado de dados, que por sua vez podem ser simples ou também estruturados, de mesmo tipo ou de tipos diferentes. Frequentemente, nas linguagens de programação, esses agregados são chamados de “registos” .

Page 5: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Tipos de dados estruturados - Estruturas

Exemplo: Notas de diferentes tipos- 4 trabalhos de casa → reais;- 1 trabalho final → inteiro;- 1 exame → real;- Nº. de aluno → inteiro.

Podia ser representada numa única variável estruturada notascontendo cada um desses elementos.

Page 6: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Exemplos de utilização:

• notas.numAl = 23802;

notas.notasTPC[3] = 0.7;

Tipos de dados estruturados - Estruturasstruct notas

{ int numAl;

float[] notasTPC = new float[4];

int trabF;

float exame;

}

Page 7: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Tipos de dados estruturados - Estruturas

Na linguagem C#, uma estrutura pode ser declarada conforme a seguinte forma geral:

struct nome {tipo nomeMembro;[tipo nomeMembro]...};

Page 8: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Conforme mencionado anteriormente, um dos componentes de uma estrutura pode ser uma outra estrutura.Exemplo: struct tdata

{ int dia, mês , ano; };struct aluno

{ int num;string nome;tdata datanasc;};

Tipos de dados estruturados - Estruturas

Page 9: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Vectores (ou matrizes) de estruturas:• Exemplo

Struct notas

{ int numAl;

float[] notasTPC = new float[4];

int trabF;

float exame;

}

notas []notasInf =new notas[50];

Tipos de dados estruturados - Estruturas

Page 10: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Tipos de dados estruturados - Estruturas

Exemplos de utilização:• notasInf[14].trabF = 5;

notasInf[25].exame = 8;

notasInf[29].notasTPC[1] = 0.8;

Page 11: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Conceitos a saber:

Vectores e Matrizes

Estruturas

Page 12: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Funções e procedimentosFunções ou procedimentos em qualquer linguagem de programação correspondem a blocos de código que realizam uma dada tarefa que pode depender de valores chamados argumentos ou parametros. A diferença essencial entre funções e procedimentos é que as funções devem retornar sempre um valor. Em C# não existem procedimentos pois estes são simulados por funções que retornam “void”.

Page 13: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Passagem de argumentos para uma função

Existem diversas formas para passagem dos argumentos pretendidos a uma função ou procedimento. São mecanismos que permitem transmitir dados a uma função, no momento da sua chamada, tornando genérico o uso dessa função.

Page 14: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Passagem de argumentos para uma função

Na chamada de funções existem duas formas de passagem de argumentos: a passagem por valor- na chamada de uma função, o valor de dado contido no argumento ou parâmetro real é copiado para a variável parâmetro formal.

e a passagem por referência - na chamada de uma função tanto o parametro real como o formal apontam para a mesma posição de memória.

Page 15: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programaçãoPassagem de argumentos para uma funçãoEm c# a passagem por valor é o caso mais geral.

Exemplostatic void Inc(int p) {p++}public static void Test() {

int i=1;Inc(i);Console.WriteLine(i); }

Page 16: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programaçãoPassagem de argumentos para uma funçãoEm c# a passagem por referência é indicada na chamada da função com os símbolos “ref” ou “out”. “out” usa-se quando os parametros formais ainda estão indefinidos, isto é, quando ainda não lhes foi atribuido qualquer valor. Se já tiverem um valor definido usa-se “ref” (os vectores são sempre passados por referência)static void Inc(ref int p) {p++}public static void Test() {

int i=1;Inc(ref i);Console.WriteLine(i); }

Page 17: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Funções

Uma função pode conter uma chamada recursiva, ou seja, pode invocar-se a si própria. versão não recursiva:

static int soma (int n){ int i;

int soma =0;

for (i=n; i>=0; i--)soma += i;

return soma;}

versão recursiva:

static int soma (int n) {if(n>0)return n+soma(n-1);

elsereturn o;

}

Page 18: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programaçãoFunções

Exemplo: soma (5)

5+soma(4)

4+soma(3)

3+soma(2)

2+soma(1)

1+soma(0)

0

{[…]x = soma(5);[…]

}

Page 19: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

FunçõesA recursão pode não economizar espaço na memória do computador , pois uma “pilha” deve ser mantida na memória com os valores sendo processados, correspondentes a cada “ambiente” que é criado a cada chamada recursiva,

A recursão também não é mais rápida. A vantagem de códigos recursivos é que eles são mais compactos do que os seus correspondentes não recursivos.

Page 20: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Conversão de TiposA linguagem C# possui um operador para forçar a conversão de tipos de dados, que altera o tipo de um valor. Esse operador é o “cast”: ()

Exemplo: ............{ float a = 35.7, b = 87.4;

int x;

x = (int) (a+b);}

A soma “a + b” é convertida para um valor “int”.

Page 21: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Se uma expressão envolver valores de diferentes tipos, a Linguagem C# possui regras para a conversão automática de tipos, baseadas nos tipos dos operandos. O fundamento dessas regras é que sempre se promove uma conversão para um tipo de maior precisão, com o objetivo de que as expressões mantenham a sua precisão e não percam informação.

Conversão de Tipos

Page 22: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

APONTADORESUm apontador ou ponteiro é uma variável que armazena o endereço de outra variável, ou seja, aponta para esse endereço de memória. Um apontador é uma representação simbólica de um endereço que evita que os programadores necessitem conhecer as posições de memória que vão usar.

apontador

Page 23: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

APONTADORES

As 3 operações básicas para apontadores são:

• atribuição de endereço • operador p/obter o conteúdo de um apontador • operador p/obter o endereço de uma variável

Page 24: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

APONTADORES

Na linguagem C# , um apontador só é usado para manipulação explícita da memória em blocos de código identificados como inseguros (unsafe).

Page 25: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Conceitos a saber:

Apontadores

Passagem de argumentos para uma função

Conversão de tipos

Funções Recursivas

Page 26: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Engenharia de Software

O objectivo da Engª de Software é estabelecer técnicas e métodos de trabalho que permitam aumentar a qualidade e a eficiência do software.

A qualidade de um programa não depende só do algoritmo ou das estruturas de dados utilizados mas também da documentação que lhe dá suporte. Um bom programa, para além de eficiente, deverá ser fácil de entender e de alterar.

Page 27: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Um bom programa deverá:

- ter o código escrito de forma organizada recorrendo a linhas em branco, identaçãoem vários níveis e espaços em branco para aumentar a facilidade com que é lido.

- ter as expressões numéricas ou lógicas escritas de forma clara podendo usar parêntises para facilitar o entendimento da expressão.

Page 28: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Um bom programa deverá:- ter comentários explicando o que se pretende fazer e dando indicações sobre os elementos criados.

- ter identificadores para variáveis e funções que facilitem o entendimento do uso que lhes será dado.

- estar estruturado em componentes de pequena dimensão e que realizem tarefas bem definidas.

Page 29: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Os sub-componentes de um programa devem ser capazes de realizar tarefas bem definidas escondendo dos outros componentes os detalhes internos de implementação em especial as estruturas de dados por eles utilizadas.

A implementação de componentes com funções comuns a outros programas facilita a sua reutilização poupando tempo no desenvolvimento de software.

Page 30: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Orientação a ObjectosPara que desenvolver um programa possa ser mais fácil apareceu o conceito de programação orientada a objectos.

A orientação a objectos baseia-se na visão de que a realidade que nos rodeia é composta de objectos e que estes interagem entre si através de interfaces bem definidas sem que tenham de conhecer os detalhes de como os outros objectos são implementados.

Page 31: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programaçãoOrientação a ObjectosAs linguagens de programação ditas procedimentais, como C, são geralmente orientadas para a implementação de funções e os seus programas são organizados através desse conceito.

O C# é uma linguagem orientada a objectos e por isso as unidades que compõe um programa são “classes” (class) e as funções ficam definidas dentro das classes e são geralmente designadas como métodos.

Page 32: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Conceitos a saber:

Qualidade de um programa

Engenharia de Software

Orientação a Objectos

Page 33: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Como sabemos todos os dados processados num programa devem estar armazenados em células da memória central. Quando o programa termina essas áreas são libertadas e perdem-se os dados lá armazenados.

Quando pretendemos guardar dados é necessário recorrer a ficheiros como um mecanismo para armazenar com persistência a informação fornecida pelos programas ou necessária ao processamento.

Page 34: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Ficheiros

Um ficheiro de dados é uma sequência de elementos armazenados em disco

A utilização de ficheiros armazenados na memória de massa (ex.:disco) obriga a que os programas sejam capazes de trocar informações com o sistema de ficheiros implementado pelo sistema de exploração da máquina onde o programa executa.Esta é uma actividade com alguma complexidade e as Linguagens de Programação oferecem comandos para permitir essa ligação entre o programa e o sistema.

Page 35: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Ficheiros

ABERTURA

P r o c e s s a m e n t o Operações L / E

ENCERRAMENTO

Um ficheiro em disco para ser utilizado tem antes que ser “aberto”, isto é, preparado para processamento. Após

processado, um ficheiro tem que ser “fechado”.

Page 36: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Ficheiros

Geralmente a abertura de um ficheiro associa o nome físico do ficheiro, reconhecido pelo sistema de exploração, a um nome lógico, através do qual o ficheiro será referenciado no programa .

O elemento corrente em um ficheiro é aquele que está apontado, disponível para uma operação de leitura ou escrita.

Page 37: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Ficheiros

As operações de leitura e escrita são sempre realizadas no elemento corrente.

Uma operação de leitura ou escrita lê ou escreve e elemento apontado e passa para o próximo elemento.

Page 38: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Ficheiros

O encerramento de um ficheiro encerra o ficheiro para as operações de leitura e escrita.

Após o encerramento, não será possível realizar novas operações sobre o ficheiro

Um ficheiro não deve ficar aberto sem uso.

Page 39: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Ficheiros

Não existem comandos da linguagem C# que forneçam suporte directo para manipulação de ficheiros.

C# vê um ficheiro como uma sequência de bytes. Para trabalhar com ficheiros é necessário usar o namespace System.IO que possui uma série de classes pré-definidas para abertura, operações de leitura e escrita e encerramento de ficheiros.

Page 40: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

FicheirosComo trabalhar com ficheiros é uma tarefa complexa e para muitas aplicações torna-se indispensável trabalhar com dados armazenados em ficheiros, apareceu o conceito de Bases de Dados, isto é, um grupo de ficheiros inter-relacionados, que são criados e manipulados através de um Sistema de Gestão de Bases de Dados.

Um Sistema de Gestão de Bases de Dados (SGBD) é uma coleção de programas que incluem as principais funções para criação, actualização e consultas a dados.

Page 41: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Ficheiros

Nas aulas práticas serão feitos exercícios para apresentar o uso de ficheiros em C# e de Bases de Dados no Access.

Nas aulas teóricas iremos aprofundar os conceitos necessários ao entendimento e uso de Bases de Dados e exemplificar esses conceitos usando o SGBD Access que faz parte do Microsoft Office.

Page 42: vectores - Autenticação · Maria Helena Braz Conceitos básicos de programação Tipos de dados estruturados vectores ≡ matrizes Tipos estruturados Estruturas (registos) Vectores

Maria Helena Braz

Conceitos básicos de programação

Conceitos a saber:

Abertura e encerramento

Ficheiros

Bases de Dados

Sistema de Gestão de Bases de Dados