segunda-feira, 31 de janeiro de 2011

Como se pensa em objectos?

Pensar em termos de objectos é muito parecido como faríamos na vida real.
Por exemplo, um automóvel:
O elemento principal é o automóvel, com uma série de características; cor, o modelo ou a marca,…
Bem como uma série de funcionalidades associadas; andar, parar, estacionar, …
Então num esquema POO o carro seria o objecto, as propriedades seriam as características como a cor ou o modelo e os métodos seriam as funcionalidades associadas como andar ou parar.

O que é a Programação Orientada por Objectos?

A programação Orientada a objectos (POO) é uma forma especial de programar, mais próximo de como expressaríamos as coisas na vida real do que outros tipos de programação.Com a POO temos que aprender a pensar as coisas de uma maneira distinta, para escrever os nossos programas em termos de objectos, propriedades, métodos e outras coisas que veremos mais à frente.
Durante anos, os programadores dedicaram-se a construir aplicações muito parecidas que resolviam uma vez ou outra, os mesmos problemas.
¢Para conseguir que os esforços dos programadores possam ser utilizados por outras pessoas foi criado a POO. Esta é uma série de normas de realizar as coisas de maneira que outras pessoas possam utilizá-las e adiantar seu trabalho, de maneira que consigamos que o código possa reutilizar-se.
A POO não é difícil, mas é uma forma especial de pensar, às vezes subjectiva, podendo ser diferente de programador para programador.
Embora possamos fazer os programas de formas distintas, nem todas elas são correctas, o difícil não é programar orientado a objectos mas sim, programar bem. Programar bem é importante porque assim podemos aproveitar todas as vantagens da POO.

Cont. Programação Orientada por Objectos (história)

Este tipo de linguagem segue a ideia de utilizar uma linguagem previamente existente como base e adicionar-lhe novas funcionalidades.
Outras são mais "puras", sendo construídas do zero focando-se sempre nas ideias por trás da orientação a objectos como é o caso das linguagens Smalltalk, Self e IO, onde tudo é orientado a objectos.

Cont. Programação Orientada por Objectos (história)

O paradigma de programação já é bastante antigo, mas só agora vem sido aceite realmente nas grandes empresas de desenvolvimento de Software.
Alguns exemplos de linguagens modernas utilizadas por grandes empresas que adoptaram essas ideias:Java, C#, C++, Object Pascal (Delphi), Ruby, Python, Lisp, ...
A maioria delas adopta as ideias parcialmente, dando espaço para o antigo modelo de programação, como acontece no C++ por exemplo, onde temos a possibilidade de usar POO, mas a linguagem não força o programador a adoptar este paradigma de programação, sendo ainda possível programar da forma tradicional.

Programação Orientada por Objectos (história)

O termo Programação Orientada a Objectos foi criado por Alan Kay, autor da linguagem de programação Smalltalk.
Mas mesmo antes da criação do Smalltalk, algumas das ideias da POO já eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas ideias foi a linguagem Simula 67, criada por Ole Johan Dahl e Kristen Nygaard em 1967

segunda-feira, 10 de janeiro de 2011

Características da Programação Orientada a Objectos

Abstracção à (processo de formulário conceitos gerais por abstracção de propriedades comum de exemplos específicos).
 É uma ferramenta para manipular a complexidade quer na elaboração de modelos conceptuais onde os conceitos gerais são identificados por um nome para abstrair sobre atributos e comportamento.
Partilha de Comportamento: A abstracção de dados introduz o conceito de comportamento de uma identidade como um conjunto de operações extremas dessa entidade.
Evolução: Em computação os requisitos de um sistema evoluem rapidamente, logo podemos considerar evolução como a necessidade de adicionar novas funcionalidades e de notificar os já existentes.

Resumo

A diferença importante da variação objectos em relação a programação convencional ou procedimental consiste na capacidade de estender um sistema por simples adição do novo código em situações onde com técnicas convencionais seria necessário modificar o código anterior.
Enquanto a abstracção de dados permite adicionar novos conceitos

Linguagens Simula-67

É uma extensão do ALGOL 60. 

Com o desenvolvimento da tecnologia de construção de workstations que permitem ambientes de programação sostificados a computação OO teve rápida expansão surgiram então as linguagens que se seguem: objective C, C++,Visual C++(extensões da linguagem C) clos-common list system. Object Pascal, delfi que são extensões da linguagem Pascal,Visual Basic.

Programação Orientada a Objectos

Formaliza o encapsulamento permitindo descrever um sistema um sistema em conjunto de entidades ou objectos autónomos no sentido de que o funcionamento de um objecto depende da estrutura interna de outros objectos.

Tipo Abstracto de Dados

(TAD), permite a definição de tipo de dados que incluem um conjunto de variáveis e as operações que o manipulam.
Da revolução do estado surge o conceito de orientação a objectos.
Um conceito comum a todas as linguagens que se reclamam como orientadas a objectos é o de encapsulamento.

Linguagens de Progamação de baixo nível

Trata-se de uma linguagem de programação que compreende as características da arquitetura do computador.
Utiliza somente instruções do processador, para isso é necessário conhecer os registradores da máquina.
Neste caso, as linguagens de baixo nível estão diretamente relacionadas com a arquitetura do computador.
Um exemplo é a linguagem Assembly (não Assembler) que trabalha diretamente com os registradores do processador, manipulando dados.

Linguagens de Progamação

Linguagem de programação de alto nível é uma linguagem longe do código de mâquina e mais perto da linguagem humana, as linguagens de alto nível não estão diretamente relacionadas à arquitetura do computador.
O programador de uma linguagem de alto nível não precisa conhecer características do processador.
Apesar disso, por questão de praticabilidade e objetividade, a classificação geralmente se limita em "linguagem de alto nível" e "linguagem de baixo nível".
Alguns exemplos de linguagens de alto nível: C/C++ , Pascal, Java.

Unik

Sistema operativo que utiliza a multitarefa.
  - Por Processo
  - Por treath.
Os processos tem uma série de treath’s associados.
Tipicamente cada processo tem um determinado espaço de endereçamento que as diferentes treath’s  partilham.
Cada treath tem o seu próprio estado de processador e a sua própria memória.
Tecnologia à Tem o objectivo de eliminar tarefas e facilitar trabalhos mecânicos.

Kernel

Kernel à Sistema Operativo responsável por isolar os contextos de execução de várias tarefas.
O kernel à Pode ser chamado por uma interrupção protocolada por um temporizador interno de um computador que executa as seguintes operações:
1- Salva o estado processador numa extrutura de dados do kernel (árvore de processos).
2- Selecciona com base num algoritmo a próxima tarefa a executar.
3- Se for necessário reconfigurar o espaço de endereçamento de modo a que a próxima tarefa encontre a memória no estado que espera.
4- Carrega o estado do processador referente a tarefa que vai receber tempo de processador .
5- A rotina retorna permitindo que o programa execute.

Existência de Multitarefa

Nota: Multitarefa permite-nos saltar de janela em janela, ou seja, podemos utilizar vários programas em simultâneo.
TSR’S à Pequenos programas que permanecem em memória ennquanto estam programas em execução.
Scheduler à Agenda de processos que faz a gestão de processos das aplicações do computador.
Existem dois tipos de multitarefa:
  Multitarefa por antecipação(windowNK) & de comparação (TRON) (STORM).

Sistema Operativo Gráfico

É um sistema que tem uma interface gráfica e que os utilizadores precebam.
Ex: Windows.
Vantagem à O utilizador não precisa de saber o código e já sabe que é uma imagem, por isso as pessoas apenas precisam de saber ler.
Temos de ter em consideração as imagens e cores(leves) e fundos.
As imagens tem de ser guardadas no tamanho mais pequeno (JPG).

ORD

ORD (caracter:Clear):byte;
Exemplo
Carácter :=‘A’;
Codigo:=ORD(carácter);
Writeln(código);

STR & CHR

STR(Num[:Tom[:Dec]];var STR:String);
Numero:=123;
STR(Numero:6:2,conv);
Writeln(conv);

CHR (codigo byte):char;
Exemplo
  codigo:=65;
  caracter:=CHR(codigo);
  writeln(caracter);

Insert & Val

INSERT (substr:string;varSTR:string;pos:byte);
ExemploFrase:=‘Curso de informática’);
Insert (‘Micro’;Frase;10)
Witel (frase);

Val (str:sring;var num :integer/read var erro:integer);
Exemplo
Codigo:=‘017348’;
Val(codigo,numeracao,erro);
Writeln (numero);
Writeln (erro);

Copy & Delete

COPY (str:string;pos:byte;quant:byte):string;
Exemplo
Frase :=‘Estão aqui, estão na rua’;
Pedaco := copy (frase;7;3);
Writeln (pedaco);

DELETE (var str:string;pos:byte;quant:byte);
Exemplo
Frase:=‘Turbo Pascal 7.0’;
Delete (frase 7,7);
Writeln (frase);
R:turbo 7.0

Concat & Pos

CONCAT (str1,str2,…,strn:string):string;
Pal1:=‘Turbo’
Pal2:=‘Pascal’
Pal3:=concat (pal1,’,’,pal2);
Writeln (pal3);

POS (subst,str:string)byte;
Exemplo:
Frase:=‘têm de estudar mais’;
Resq:=‘estudar’;
Posicao:=Pos(resq,frase);
Writeln(posição);

quarta-feira, 5 de janeiro de 2011

Palavras Resevadas

Length(str:string):byte                        
Exemplo:
Tam:lenght(“Turbo Pascal”);
Writeln(‘tam’);
Upcase (CH:char):Char
Exemplo
Letra=‘a’;
Maiuscula:=Upcase(letra);
Writeln (maiúscula);