Professional Documents
Culture Documents
Arquitetura e organizao de
computadores
Terminologia
Processamento de dados
Srie de operaes que se aplica a um conjunto de dados
(entrada) para obter outro conjunto de dados ou resultados
(sada).
Exemplos
dar baixa, no talo de cheques, de um cheque emitido
procurar um nmero de telefone na lista telefnica e anot-lo em uma
caderneta
somar valores de compras no supermercado
classificar vrias contas e pag-las em ordem de data de vencimento
Elementos Bsicos
Dados iniciais - informaes iniciais sujeitas a certas transformaes
Transformaes - modificaes efetuadas no contedo ou na forma dos
dados iniciais
Resultados finais - produto dos dados iniciais aps as transformaes
2
Arquitetura e organizao de
computadores
Processamento eletrnico de dados
Processamento de dados com a utilizao do computador
Vantagens
Arquitetura e organizao de
computadores
Dado
Informao que ser trabalhada durante o processamento
Exemplos
10 (idade), 12 x 8 (presso arterial), 1.99 (altura em metros)
Instruo
Operao elementar que o computador tem a capacidade
de processar
Trabalha com os dados
Ordens executadas pelo computador
Exemplos
Arquitetura e organizao de
computadores
Programa
roteiro que orienta o computador, mostrando-lhe a seqncia de operaes
necessrias para executar uma determinada tarefa
seqncia de instrues que dirigem a CPU na execuo de alguma tarefa
composto por uma srie de comandos ou instrues
Hardware
conjunto de componentes mecnicos, eltricos e eletrnicos com os quais so
construdos os computadores e equipamentos perifricos
Software
conjunto de programas e procedimentos que permitem usufruir da
capacidade de processamento fornecida pelo hardware
Organizao funcional
Sistema Central
Unidade Central de Processamento
(UCP/CPU/microprocessador)
Unidade de Controle
Unidade Aritmtica e Lgica
Clock
Memria Principal
Interfaces
Organizao funcional
SISTEMA CENTRAL
UCP
CLOCK
UNIDADE
ARITMTICA
E LOGICA
Barramento
MEMORIA
PRINCIPAL
UNIDADE
DE
CONTROLE
MICROPROCESSADOR
Barramento
INTERFACE
INTERFACE
...
...
PERIFERICO
PERIFERICO
Unidades
de
Entrada e Sada (E/S)
Software
Software
Um programa que um computador usa para
funcionar.
Mantido em algum dispositivo de hardware como
um disco rgido, mas, por si s, intangvel.
Dados que um computador utiliza.
Programas
Agem como instrues para o processador.
Software
Tipos de Programas de Computador:
Programas de Sistemas: so necessrios para
manter sistemas de hardware e software
executando juntos em harmonia.
Programas Aplicativos: utilizados para realizar
tarefas.
Compiladores: Traduzem programas de linguagem
humana para a linguagem de mquina.
Linguagens de programao
Linguagem de Programao
Tcnica de comunicao padronizada para enviar
instrues a um computador.
Assim como a linguagem humana, cada linguagem
tem sua prpria sintaxe e gramtica.
Existem diferentes tipos de linguagem de
programao que podem ser utilizados para
criao de programas.
Categorias de Linguagens de
Programao
Linguagens de Programao de Alto Nvel
mais amigvel ao usurio
O programa dever ser traduzido atravs de um
compilador
Exemplos: Java, C, C++, Basic, Fortran
Ciclo de vida de
desenvolvimento de um
programa
Definir um problema
Um problema bem definido metade de uma
soluo.
Programas de computador requerem que
primeiro entendamos o problema para depois
tentarmos criar uma soluo.
Definindo o problema exemplo:
Crie um programa que determine o nmero
de vezes que um nome ocorre em uma lista
Analisar o problema
Este passo envolve a quebra do problema em
subproblemas menores e mais simples
Problema Exemplo:
Determinar o nmero de vezes que um nome ocorre
em uma lista
Entrada do programa:
lista de nomes;
nome procurado.
Sada do programa:
o nmero de vezes que o nome ocorre na lista
Projetar e representar o
algoritmo
Uma especificao clara e no contraditria
dos passos necessrios para resolver um
problema.
Deve ser representada em:
Linguagem humana (Ingls, Tagalog, portugus)
Representaes grfica como o fluxograma.
Pseudocdigo - que uma mistura entre a
linguagem humana e a linguagem de
programao.
Projetar e representar o
algoritmo Ling.Humana
1. Obter a lista de nomes, vamos cham-la de NomeLista
2. Obter o nome a ser procurado, vamos cham-lo de
NomeChave
3. Criar um contador, vamos cham-lo de Conta
4. Pegar cada nome em NomeLista
5. Se NomeChave for igual ao nome selecionado em
NomeLista
6. Adicionar 1 a Conta
7. Repetir 4 at que todos os nomes j tiverem sido
comparados.
8. Exibir o valor de Conta.
Projetar e representar o
algoritmo - Fluxograma
Smbolos do fluxograma
Smbolo de
processo
Smbolo de
entrada / sada
Smbolo de
conector
Smbolo de
deciso
Smbolo de
incio / fim
Smbolo de
fluxo
Codificar e Depurar
Depois de construir o algoritmo, possvel
criar o cdigo fonte. Utilizando as bases do
algoritmo, o cdigo fonte pode ser escrito com
a utilizao de qualquer linguagem de
programao.
Processo de Depurao (Debug)
o processo de localizao e acerto de erros
(bugs) no programa.
Tipos de Erros
Erros de Compilao ou Erros de Sintaxe
Ocorrem quando existem erros de sintaxe no programa
O compilador ir detectar o erro e o programa no ser
compilado
O programador estar impossibilitado de gerar um
programa executvel at que ele conserte o erro
Erros de Execuo
Compiladores no so perfeitos e no podem detectar
todos os erros de compilao
Isto especialmente verdadeiro nos erros de lgica como
os laos de repetio infinitos
Este tipo de erro chamado erro de execuo
Java
Criada em 1991 por James Gosling da Sun
Microsystems
Chamada inicialmente de OAK (Carvalho)
Mudado para Java
Java - Histria
Motivao inicial para o Java
O primeiro projeto desenvolvido utilizando
Java era o *7 (Star Seven)
Gosling e outros achavam que Java poderia
ser utilizada para programao na Internet
Tecnologia Java
JVM = apenas a virtual machine, esse download no existe, ela sempre vem
acompanhada.
JRE = Java Runtime Environment, ambiente de execuo Java, formado pela JVM e
bibliotecas, tudo que voc precisa para executar uma aplicao Java. Mas ns
precisamos de mais.
Java Linguagem de
Programao
Pode ser utilizada para criar todos os tipos de
aplicaes
De programas de Inteligncia Artificial para
Robs at programas para aparelhos celulares
Java Ambiente de
Desenvolvimento
Fornece um grande conjunto de ferramentas,
tais como:
Compilador (executvel javac.exe)
Interpretador (executvel java.exe)
Gerador de documentos (executvel javadoc.exe)
Empacotamento de classes e arquivos (executvel
jar.exe)
Verificador de Bytecode
Testar o formato dos fragmentos de cdigo.
Pesquisar em fragmentos de cdigo por cdigos
ilegais.
Definies
Console
onde se inserem comandos.
Exemplos:
Terminal (Linux).
Prompt de comando (Windows).
Definies
Editor de Texto
Exemplos:
Windows: Notepad, Wordpad.
Linux: Vi, gedit.
Primeiro programa
public class Hello {
/**
* Meu primeiro programa Java
*/
public static void main(String[] args)
{
// Mostra a mensagem Hello world
System.out.println("Hello world");
}
}
Erro de sintaxe
Usando o Eclipse
Passo 1: Executar o Eclipse
Passo 2: Construir o Projeto
Usando o Eclipse
Passo 3: Escrever o programa
Usando o Eclipse
Passo 4: Compilar o projeto
Passo 5: Executar o projeto
Comentrio em Java
Notas escritas para fins de documentao
Estas notas no fazem parte do programa e
no afetam seu fluxo
Java possui 3 tipos de comentrios:
Comentrio de linha
Comentrio de bloco
Comentrio estilo Javadoc
Identificadores em Java
Identificadores so representaes de nomes
de variveis, mtodos, classes, etc
Exemplos de identificadores podem ser: Hello,
main, System, out
Os identificadores so case-sensitive.
Isto significa que o identificador Hello no o
mesmo que hello.
Identificadores em Java
Iniciam com Letra (A-Z, a-z), Underscore _,
ou Sinal de cifro $.
Aos caracteres subsequentes adicionam
nmeros (0-9).
No pode utilizar nomes iguais as palavraschave.
Variveis
Uma varivel um espao na memria usado
para armazenar o estado de um objeto
Uma varivel possui:
Tipo que indica o tipo de dado que ela pode conter
Nome que deve seguir as regras para
identificadores
Declarando e inicializando
variveis
< tipo do dado > < nome > [ = valor inicial ];
Exemplo:
public class VariableSamples {
public static void main( String[] args ){
boolean result;
char option;
option = 'C';
double grade = 0.0;
}
}
e)
Discusso em aula
Convenes de cdigo e cdigo legvel
Referncia de variveis e
Valor de variveis
Temos dois tipos de acesso suportados:
Valor
armazenam dados no exato espao de memria onde a varivel
est.
Referncia
armazenam o endereo de memria onde o dado est
armazenado
Referncia de variveis:
Exemplo
Supondo que existam estas duas variveis dos tipos int e String
(varivel de classe).
int num = 10;
String nome = "Hello"
Referncia de variveis:
Exemplo
O quadro abaixo representa a memria do
computador, com seus endereos de memria, o nome
das variveis e os tipos de dados nela armazenados
Operadores
Os diferentes tipos de operadores so:
Operadores aritmticos
Operadores relacionais
Operadores lgicos
Operadores condicionais
Operadores Aritmticos
Operadores de incremento e
decremento
Operadores de incremento e
decremento
Os operadores de incremento e decremento podem ser
usados tanto antes quanto aps o operando
Quando usado antes do operando, provoca o acrscimo ou
decrscimo de seu valor antes da avaliao da expresso
em que este operador utilizado
Por exemplo:
int i = 10;
int j = 3;
int k = 0;
k = ++j + i; //resultar em k = 4+10 = 14
int x = 10;
int y = 3;
int a = x++ + y; //resultar em a = 3+10 = 13
Operadores relacionais
Os operadores relacionais so usados para comparar
dois valores e determinar o relacionamento entre eles
A sada desta avaliao ser dada com um valor lgico:
true ou false
Operadores lgico
Operadores lgicos avaliam um ou dois
operandos lgicos e resultam em um nico valor
lgico: true ou false
Os operadores lgicos so seis:
&& (e lgico)
& (e binrio)
|| (ou lgico)
| (ou binrio)
^ (ou exclusivo binrio)
! (negao)
Operadores lgicos
&& (e lgico) e & (e binrio)
! (negao)
Precedncia de Operadores
Exerccios
Qual o resultado da expresso complexa:
6%2*5+4/2+88-10
Exerccios
1)Faa um programa que leia a idade de uma pessoa expressa em
anos, meses e dias e mostre-a expressa apenas em dias.
2) Faa um programa que leia dois valores nas variveis A e B
respectivamente, troque o valor contido na varivel A pelo valor em
B, e o valor em B pelo valor em A, isto , imprimiremos A e B com os
valores trocados.
3) Faa um programa que leia cinco nmeros inteiros, calcule e
escreva a soma, o produto e a mdia dos nmeros lidos.
4) Faa um programa que leia o nmero do funcionrio, o nmero de
horas trabalhadas mensais, o valor que recebe por hora e o nmero
de filhos com idade menor de 14 anos. Calcular e escrever o salrio
deste funcionrio, sendo que cada filho menor de 14 anos acrescenta
10% do salrio.
Estruturas de Controle
Permitem mudana na ordem da execuo
dos programas.
Tipos:
Deciso
Repetio
Estruturas de
Controle de Deciso
Permitem executar blocos especficos de
instrues.
Tipos:
Declaraes if
Declaraes if-else
Declaraes If-else-if
Declaraes switch
Declarao if
if (expresso_lgica)
instruo_em_caso_verdadeiro;
int grade = 68;
if (grade > 60)
System.out.println("Congratulations!");
Declarao if/else
if (expresso_lgica) {
instrues_caso_TRUE;
} else {
instrues_caso_FALSE;
}
If/else/if
if (expresso_lgica1)
instruo1;
else if (expresso_lgica2)
instruo2;
else
instruo3;
public class Grade {
public static void main( String[] args ) {
double grade = 92.0;
if (grade >= 90) {
System.out.println("Excellent!");
} else if((grade < 90) && (grade >= 80)) {
System.out.println("Good job!");
} else if((grade < 80) && (grade >= 60)) {
System.out.println("Study harder!");
} else {
System.out.println("Sorry, you failed.");
}
}
}
Declarao switch
switch (varivel_inteira) {
case valor1:
instrues_bloco1; break;
case valor2:
instrues_bloco2;break;
case valor3:
instrues_bloco3;
break;
default:
instrues_blocoDefault;
}
Exemplo switch
public class Grade {
public static void main( String[] args ) {
int grade = 92;
switch(grade){
case 100:
System.out.println("Excellent!");
break;
case 90:
System.out.println("Good job!" );
break;
case 80:
System.out.println("Study harder!" );
break;
default:
System.out.println("Sorry, you failed.");
}
}
}
Exerccios
1)Escrever um algoritmo para ler dois valores numricos e apresentar a diferena do
maior pelo menor.
Infantil A: 5 a 7 anos;
Infantil B: 8 a 10 anos;
Juvenil A: 11 a 13 anos;
Juvenil B: 14 a 17 anos;
Snior: maiores de 18 anos.
Estruturas de Controle de
Repetio
Permitem executar especficos trechos de
cdigo diversas vezes
Tipos:
while
do-while
for
Declarao while
while (expresso_lgica)
instrues_enquanto_verdadeiro;
int x = 0;
while (x<10) {
System.out.println(x);
x++;
}
Declarao do-while
do {
instruo1;
instruo2;
...
} while (expresso_lgica);
int x = 0;
do {
System.out.println(x);
x++;
}while (x<10);
Declarao for
for (declarao_inicial; expresso_lgica; salto) {
instruo1;
instruo2;
...
}
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
As instrues mostradas acima so equivalentes ao
seguinte lao while:
int i = 0;
while (i < 10) {
System.out.print(i);
i++;
}
Declarao de Interrupes
Permitem redirecionar o fluxo de controle de um programa
Java oferece trs declaraes de interrupo:
break
continue
Return
break
Encerra uma declarao switch e o fluxo de controle passa para a instruo
seguinte
Utilizado para terminar declaraes for, while, ou do-while
continue
Retorna para o fim do corpo do lao interno e avalia a expresso lgica que o
controla, saltando o restante das instrues deste lao
return
Abandona o mtodo atual
Fluxo de controle retorna para o local de chamada do mtodo
Exemplos
for (int i=0; i < names.length; i++) {
if (names[i].equals(searchName)) {
foundName = true;
break;
}
}
for (int i=0; i<names.length; i++) {
if (!names[i].equals("Beah")) {
continue; // interrompe o fluxo
}
count++;
}
for (int i=0; i < names.length; i++) {
if (names[i].equals(searchName)) {
return i;
}
}
Exerccios
1)Imprima todos os nmeros de 150 a 300.
2) Imprima a soma de 1 at 1000.
3) Imprima todos os mltiplos de 3, entre 1 e 100.
4) Imprima os fatoriais de 1 a 10.
O fatorial de um nmero n n * n-1 * n-2 ... at n = 1.
Lembre-se de utilizar os parnteses.
O fatorial de 0 1
O fatorial de 1 (0!) * 1 = 1
O fatorial de 2 (1!) * 2 = 2
O fatorial de 3 (2!) * 3 = 6
O fatorial de 4 (3!) * 4 = 24
Faa um for que inicie uma varivel n (nmero) como 1 e
fatorial (resultado) como 1 e varia n de 1 at 10:
for (int n = 1, fatorial = 1; n <= 10; n++) {
}
Criando arrays
Pode-se, tambm, construir um array ao inici-lo diretamente com dados
int arr[] = {1, 2, 3, 4, 5};
Este cdigo declara e inicializa um array de inteiros com cinco elementos
(inicializados com os valores 1, 2, 3, 4, e 5)
Exemplos:
boolean results[] = { true, false, true, false };
double [] grades = {100, 90, 80, 75};
String days[] = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};