SlidesIntro

Propaganda
Instituto Superior de Engenharia de Lisboa
Introdução
à
Programação (PG)
Docente: Pedro Viçoso Fazenda ([email protected])
Professor Responsável: Pedro Alexandre Pereira ([email protected])
1
Índice
• Hardware
• Software
• Sistema Operativo
• Execução de programas
• Operações Lógicas
• Interpretador, Compilador, Máquina Virtual
• Organização de Código em Java
• Exemplo “Hello World”
• Identificadores e Palavras Reservadas
Programação, ADEETC , ISEL
2
Hardware – Componentes do Computador
Dispositivos de
Entrada
Dispositivos de
Saída
Memória RAM
Microprocessador
Armazenagem
Persistente
Programação, ADEETC , ISEL
3
Hardware – O Microprocessador
Linguagem Assembly
Código Máquina
Programação, ADEETC , ISEL
4
Endereço
Hardware – Memória RAM
Dados
Programação, ADEETC , ISEL
5
Hardware - Motherboard
Placa Gráfica
Programação, ADEETC , ISEL
6
Hardware - Sistema Operativo
Aplicações
Sistema Operativo
Drivers
BIOS
Hardware
Programação, ADEETC , ISEL
7
Operações Lógicas
Operação
e
Operação
ou
Operação
Negação
A
B
A eB
Falso
Falso
Falso
Falso
Verdadeiro
Falso
Verdadeiro
Falso
Falso
Verdadeiro
Verdadeiro
Verdadeiro
A
B
Falso
Falso
Falso
Falso
Verdadeiro
Verdadeiro
Verdadeiro
Falso
Verdadeiro
Verdadeiro
Verdadeiro
Verdadeiro
A ou B
A
Negação A
Falso
Verdadeiro
Verdadeiro
Falso
Programação, ADEETC , ISEL
8
Operações Lógicas - Exemplo
Aplicação de Operadores Lógicos
X=1
B = (5 > 6)
Se (X <= 1) então “salta”
Se ((X > 10) ou (B é verdadeiro) ) então Escreve “Azar”
Serve, por exemplo, para conduzir a
execução de um programa
Programação, ADEETC , ISEL
“Salta”
9
Java - Introdução
A Máquina Virtual Java é um
programa que executa um
programa!...
bytecode
.
java
Máquina Virtual
Compilador
Sistema Operativo
Drivers
A Máquina Virtual Java é compilada
para cada plataforma específica
A Máquina virtual interpreta os ficheiros compilados
(bytecode) e executa o programa Java…
Programação, ADEETC , ISEL
Hardware
10
Java – JRE vs. JDK
Java Runtime Environment
Consiste na Máquina Virtual Java (JVM – Java Virtual Machine) e as Java class libraries
Contém as funcionalidades necessárias para correr os programas feitos em Java.
Java Development Kit
Contém um conjunto adicional de ferramentas necessárias para criar programas em Java
i.e. o compilador, a JVM, e as Java class libraries.
Programação, ADEETC , ISEL
11
Java - Características
Objectivo do Java: Permitir escrever programas que executem em múltiplas plataformas.
Algumas propriedades do Java
• Independente da plataforma. A máquina virtual permite criar uma abstracção do
sistema operativo subjacente. Como tal, permite criar programas portáteis i.e.
programas que conseguem ser executados sobre diversas plataformas sem que para
isso tenham que ser modificados…
• Orientada a objectos. Excepto tipo de dados primitivos. Todos os outros elementos são
objectos Java.
• Strongly-typed. Os tipos das variáveis têm que ser pré-definidos e a sua conversão
para outros objectos é relativamente restrita – tem que ser feita, na maior parte dos
casos, pelo programador.
• Gestão automática de memória. O programa não tem acesso directo à memória.
Existe um mecanismo (garbage collector) que apaga automaticamente objectos que
não estejam mais referenciados.
Programação, ADEETC , ISEL
12
Organização do Código em Java
• Pacote. Contém classes e outros pacotes.
• Classes. Contém métodos, campos e outras classes.
• Método. Contém uma sequência de instruções que executam uma determinada
funcionalidade no âmbito da classe no qual está inserido.
O método pode receber parâmetros…
Por exemplo, um método que executa a função f(x) = x*2
• Campo. Contém um conjunto de dados que são utilizados pelo código dos métodos.
Estes dados caracterizam o estado de um objecto.
Por exemplo, um PontoNoEspaço pode ser caracterizado pelos campos x=10 e y=20…
Mas iremos ver isso mais adiante…
Programação, ADEETC , ISEL
13
Java – O meu primeiro programa
Ficheiro HelloWorld.java
Depois de Compilado…
Java HelloWorld.java
HelloWorld.class
A Máquina virtual coloca em execução o código do método
public static void main(String[] args) da classe indicada (HelloWorld).
Programação, ADEETC , ISEL
14
Java – O meu primeiro programa (Experimentem!...)
Programação, ADEETC , ISEL
15
Identificadores em Java
• Composta por letras, dígitos e “_” sem espaços
• O primeiro símbolo não pode ser um dígito
• Distingue-se entre maiúsculas e minúsculas
• Não podem ser palavras reservadas
• Dimensão ilimitada
• Nomes sugestivos que documentem o código.
• Convenções:
– Classes: UpperCamelCase
– Variáveis e métodos: lowerCamelCase
– Constantes: UNDER_SCORE
• O carácter “$” também é permitido mas não é normalmente usado
• O carácter “_” não é normalmente usado no início
Programação, ADEETC , ISEL
16
Palavras Reservadas
abstract
continue
for
new
switch
assert
default
goto*
package
synchronized
boolean
do
if
private
this
break
double
implements
protected
throw
byte
else
import
public
throws
case
enum
instaceof
return
transient
catch
extends
int
short
try
char
final
interface
static
void
class
finally
long
strictfp
volitile
cont*
float
native
super
while
* - Não é usado
Programação, ADEETC , ISEL
17
Variáveis Locais
Sintaxe:
Existem 2 Tipos no Java: Tipo Classe e Tipo Primitivo
Tipo variável_1, variável_2,…;
Exemplos:
int numLivros = 10, numPessoas, numReq;
char resposta;
double valor, taxaJuro;
Afectação da variável:
variável = Expressão
Exemplo:
valor = valor + valor*taxaJuro;
Programação, ADEETC , ISEL
18
Tipos Primitivos
A Linguagem Java é “statically-typed” i.e. todas as variáveis têm que primeiro ser
declaradas antes de serem utilizadas  Tem que se definir o Tipo e o Nome da Variável
Exemplo:
int contador = 1;
A variável contador existe, contém dados
numéricos inteiros, e o valor inicial é 1
A Linguagem Java suporta vários tipos primitivos de dados.
(O tipo primitivo é indicado utilizando uma das palavras reservadas)
Programação, ADEETC , ISEL
19
Tipos Primitivos – Inteiros (com sinal)
byte
(8-bits representado na forma de complemento para 2 – O dígito mais significativo (MSB) é o
que informa o sinal do número. Se este dígito for o número é positivo, e se for é negativo).
Valor Mínimo: -128, Valor máximo: 127 (inclusive).
short
16-bits representado na forma de complemento para 2.
Valor Mínimo: -32,768 , Valor máximo: 32,767 (inclusive).
int
32-bits representado na forma de complemento para 2.
Valor Mínimo: -2,147,483,648 , Valor máximo: 2,147,483,647 (inclusive).
long
64-bits representado na forma de complemento para 2.
Valor Mínimo: -9,223,372,036,854,775,808,
Valor máximo: 9,223,372,036,854,775,807 (inclusive).
Programação, ADEETC , ISEL
20
Tipos Primitivos - Exemplo
Programação, ADEETC , ISEL
21
Tipos Primitivos – Reais (norma IEEE 754)
float
32-bits (4 bytes)
double
64-bits (8 bytes)
Programação, ADEETC , ISEL
22
Tipos Primitivos
char
Caracteres (Unicode) 2 bytes
Exemplos:
char c = 'A';
char tab = '\t';
char nul = ' ';
char aleph = '\u05D0'
boolean
Lógicos – true ou false
Programação, ADEETC , ISEL
23
Unicode
Os 256 primeiros códigos Unicode são idênticos aos do padrão ISO 8859-1 (ASCII):
Programação, ADEETC , ISEL
24
Operadores
+
Prioridade
Programação, ADEETC , ISEL
25
Operadores - Exemplo
Programação, ADEETC , ISEL
26
Download