Você está na página 1de 15

9/15/2010

Introduo programao
Algoritmos Programas Compilao e interpretao Conceitos bsicos de P.O.O.

Algoritmos
Algoritmo: uma sequncia de instrues para a resoluo de um problema em que cada instruo define uma tarefa elementar a executar Um algoritmo deve ser:

Preciso: cada instruo deve ser definida sem ambiguidade Eficaz: cada instruo deve ser realizvel em tempo finito e com esforo limitado Finito: tem que terminar

9/15/2010

Algoritmo que soma dois nmeros

Ler a Ler b ca+b Mostrar c

Algoritmo que soma os nmeros inteiros de 1 a 100


nmero 1 soma 0 Enquanto nmero <= 100 faz soma soma + nmero nmero nmero + 1 Fim Enquanto Mostrar soma
4

9/15/2010

Algoritmo que soma os nmeros inteiros de 1 a 100 (verso 2)


nmero 1 soma 0 Faz soma soma + nmero nmero nmero + 1 Enquanto nmero <= 100 Mostrar soma

Algoritmo que soma os nmeros inteiros de 1 a 100 (verso 3)


soma 0 Para nmero de 1 at 100 faz soma soma + nmero Mostrar soma

9/15/2010

Algoritmo que soma os nmeros pares de 1 a 100


nmero 1 soma 0 Enquanto nmero <= 100 faz Se nmero % 2 == 0 nmero nmero + 1 Fim Enquanto Mostrar soma
7

% - resto da diviso inteira a == b verdadeiro se a e b so iguais e falso em caso contrrio

soma soma + nmero

Algoritmos - exerccios
Escreva um algoritmo que calcule a rea de um quadrado Escreva um algoritmo que calcule a rea e o permetro de uma circunferncia Escreva um algoritmo que determine se um nmero par ou mpar Escreva um algoritmo que determine se um nmero mltiplo de 5 Escreva um algoritmo que determine o maior de dois nmeros (eles podem ser iguais!) Escreva um algoritmo que determine o maior de trs nmeros (...)
8

9/15/2010

Algoritmo que troca o valor de duas variveis


Exemplo:

Consideremos que so fornecidas ao algoritmo as duas variveis a e b aux = a a=b b = aux

1 a 1 a 2 a 2 a

2 b 2 b 2 b 1 b aux 1 aux 1 aux 1 aux


9

Algoritmo que ordena trs nmeros por ordem crescente (dividir para reinar!)
Mostrar Introduza um nmero: , Ler a Mostrar Introduza um nmero: , Ler b Mostrar Introduza um nmero: , Ler c Se a > b Trocar a com b Se b > c Ordenar Trocar b com c Se a > b Trocar a com b Mostrar a Mostrar b Mostrar c

10

9/15/2010

Algoritmo que ordena trs nmeros por ordem crescente (dividir para reinar!)
Ler (a) Ler (b) Ler (c) Ordenar (a, b, c) Mostrar a Mostrar b Mostrar c Ler (v) Mostrar Introduza um nmero: Ler v

Trocar (v1, v2) aux = v1 v1 = v2 v2 = aux

Ordenar(v1, v2, v3) Se v1 > v2 Trocar (v1, v2) Se v2 > v3 Trocar (v2, v3) Se v1 > v2 Trocar (v1, v2)

11

Algoritmos mais exerccios


Escreva um algoritmo que para um valor entre 0 e 20, introduzido pelo utilizador e correspondente a uma nota, indique a respectiva classificao qualitativa de acordo com a seguinte tabela.
Nota 0..6 7..9 10..13 14..16 17..20 Classificao Medocre Insuficiente Suficiente Bom Muito Bom

12

9/15/2010

Algoritmos mais exerccios


Escreva um algoritmo que calcule a soma de uma sequncia de N nmeros introduzidos pelo utilizador Altere o algoritmo anterior de modo a calcular tambm a mdia dos nmeros introduzidos Escreva um algoritmo que determine a soma de uma sequncia de nmeros introduzidos pelo utilizador. Considere que a sequncia termina quando o utilizador introduzir o valor 0 (zero) Altere o algoritmo anterior de modo a calcular tambm a mdia dos nmeros introduzidos
13

Algoritmos mais exerccios


Escreva um algoritmo que determine o nmero de valores pares existentes numa sequncia de nmeros introduzidos pelo utilizador. Considere que a sequncia termina quando for introduzido pelo utilizador um valor negativo, ou zero Escreva um algoritmo que determine a % de valores positivos e a % de valores negativos existentes numa sequncia de nmeros introduzidos pelo utilizador. Considere que a sequncia termina com a introduo do valor zero

14

9/15/2010

Algoritmos mais exerccios

Escreva um algoritmo que determine o maior valor existente numa sequncia de N nmeros introduzidos pelo utilizador Escreva um algoritmo que escreva no ecr uma tabela dos nmeros de 1 a 100, os seus quadrados e cubos, de acordo com o seguinte formato: 1 2 3 . 100 1 4 9 . 10000 1 8 27 . 1000000
15

Programa
Programa (definio simplista): algoritmo escrito numa determinada linguagem de programao Algoritmo Programa

Linguagem de programao: linguagem que permite a escrita de programas que podem ser executados por um computador Exemplos de LPs: C, Pascal, Delphi, Visual Basic, C++, C#, Java
16

9/15/2010

Compilao e Interpretao
Compilao: processo que converte um programa escrito numa linguagem de programao (denominado por cdigo fonte) numa representao (denominada por cdigo mquina ou cdigo executvel) que pode ser executada directamente pelo computador Interpretao: processo que transforma em tempo real um programa de computador em cdigo mquina e que executa esse cdigo

17

Compilao e Interpretao
Os programas escritos em C e C++, por exemplo, so compilados

Vantagem: a execuo dos programas mais rpida Desvantagem: os programas s correm na arquitectura para a qual foram compilados

Os programas escritos em Lisp e APL, por exemplo, so interpretados

Vantagem: os programas podem ser executados em diferentes tipos de arquitecturas Desvantagem: a execuo dos programas mais lenta

18

9/15/2010

Compilao e Interpretao
O Java utiliza os dois processos:

O cdigo fonte compilado apenas uma vez para uma representao intermdia denominada por byte code O byte code interpretado e executado por uma mquina virtual que no caso do Java se chama Java Virtual Machine (JVM)

19

Independncia da arquitectura
possvel compilar o byte code para cdigo executvel (vantagens vs desvantagens?) Just in Time (JIT) Compiler : compilador que compila em tempo de execuo o byte code para cdigo executvel

Write once, run everywhere


20

10

9/15/2010

Abordagens Programao
As linguagem de programao tm evoludo no sentido de

Uma aproximao percepo humana, ou seja, forma como ns entendemos o mundo real Permitir lidar com problemas de maior dimenso e complexidade

Abordagens programao:

Abordagem procedimental Abordagem orientada por objectos

Nota: existem outras formas de classificar as linguagens de programao que no abordaremos nesta UC
21

Abordagem Procedimental
Consiste na diviso do problema a resolver em problemas mais pequenos (ex: problema da ordenao de 3 ns) Programa dividido num conjunto de funes/procedimentos Estruturao de um programa consiste na identificao:

funes caractersticas das funes relaes entre funes

Muita nfase nas funes e pouca nos dados

22

11

9/15/2010

Abordagem orientada por objectos


Estruturao de um programa consiste na identificao:

objectos caractersticas dos objectos relaes entre objectos Objecto2 O mundo real consitudo por objectos que interagem entre si!

Objecto1 Objecto3

23

P.O.O - Conceitos bsicos

Classe Objecto Instncia e Instanciao Encapsulamento

24

12

9/15/2010

Classe vs Objecto
Classe - Modelo representativo de uma entidade do mundo real. Caracterizada por:

conjunto de atributos - propriedades conjunto de mtodos - comportamento

Classe a unidade de modularidade da P.O.O.

Funciona como um molde para criar objectos

Objecto - Entidade com um determinado estado

Estado - conjunto de valores dos atributos que identificam o objecto


25

Instncia vs Instanciao
Instanciao - processo que cria um objecto a partir de uma classe Instncia - objecto resultante do processo de instanciao

26

13

9/15/2010

Classe, objecto/Instncia e Instanciao


UtenteSNS u1 = new UtenteSNS(123, Joana);
Objecto u1
N identificao = 123 Nome = Joana marcarConsulta(Data) cancelarConsulta() atribuirMdico(Mdico)

Classe UtenteSNS
N identificao Nome Mdico Data prxima consulta Historial clnico marcarConsulta(Data) cancelarConsulta() atribuirMdico(Mdico)

UtenteSNS u2 = new UtenteSNS(124, Joo);


Objecto u2
N identificao = 124 Nome = Joo marcarConsulta(Data) cancelarConsulta() atribuirMdico(Mdico)

27

Encapsulamento
Encapsulamento permite a um objecto proteger o acesso e o processamento da sua informao

Nas linguagens P.O.O. existem 3 nveis de acesso: pblico, protegido e privado

S possvel comunicar com o objecto atravs dos seus mtodos pblicos O estado interno do objecto protegido e apenas pode ser modificado por ele prprio

28

14

9/15/2010

Encapsulamento
Objecto 1
atributo1 com um valor concreto atributo2 com um valor concreto

Objecto 2
atributo1 com um valor concreto atributo2 com um valor concreto

Mtodo1() Mtodo2() Mtodo3() Mtodo4()

Mtodo1() Mtodo2() Mtodo3() Mtodo4()

29

15