Académique Documents
Professionnel Documents
Culture Documents
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
9/15/2010
9/15/2010
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
1 a 1 a 2 a 2 a
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
Ordenar(v1, v2, v3) Se v1 > v2 Trocar (v1, v2) Se v2 > v3 Trocar (v2, v3) Se v1 > v2 Trocar (v1, v2)
11
12
9/15/2010
14
9/15/2010
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
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
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:
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:
22
11
9/15/2010
objectos caractersticas dos objectos relaes entre objectos Objecto2 O mundo real consitudo por objectos que interagem entre si!
Objecto1 Objecto3
23
24
12
9/15/2010
Classe vs Objecto
Classe - Modelo representativo de uma entidade do mundo real. Caracterizada por:
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 UtenteSNS
N identificao Nome Mdico Data prxima consulta Historial clnico marcarConsulta(Data) cancelarConsulta() atribuirMdico(Mdico)
27
Encapsulamento
Encapsulamento permite a um objecto proteger o acesso e o processamento da sua informao
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
29
15