vectores - autenticação · maria helena braz conceitos básicos de programação tipos de dados...
TRANSCRIPT
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.
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
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
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” .
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.
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;
}
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]...};
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
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
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;
Maria Helena Braz
Conceitos básicos de programação
Conceitos a saber:
Vectores e Matrizes
Estruturas
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”.
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.
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.
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); }
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); }
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;
}
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);[…]
}
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.
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”.
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
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
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
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).
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
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.
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.
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.
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.
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.
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.
Maria Helena Braz
Conceitos básicos de programação
Conceitos a saber:
Qualidade de um programa
Engenharia de Software
Orientação a Objectos
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.
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.
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”.
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.
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.
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.
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.
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.
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.
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