Beruflich Dokumente
Kultur Dokumente
Introduo Programao I
Lio 4
Fundamentos da programao
JEDITM
Autor Florence Tiu Balagtas Equipe Joyce Avestro Florence Balagtas Rommel Feria Reginald Hutcherson Rebecca Ong John Paul Petines Sang Shin Raghavan Srinivas Matthew Thompson
Configurao Recomendada de Hardware Sistema Operacional Microsoft Windows Linux Solaris OS (SPARC) Solaris OS (x86/x64 Platform Edition) Mac OS X Processador 1.4 GHz Intel Pentium III workstation ou equivalente 1.4 GHz Intel Pentium III workstation ou equivalente UltraSPARC IIIi 1 GHz AMD Opteron 100 Series 1.8 GHz PowerPC G5 Memria 1 GB 1 GB 1 GB 1 GB 1 GB HD Livre 1 GB 850 MB 850 MB 850 MB 850 MB
Requerimentos de Software NetBeans Enterprise Pack 5.5 executando sobre Java 2 Platform Standard Edition Development Kit 5.0 ou superior (JDK 5.0, verso 1.5.0_01 ou superior), contemplando a Java Runtime Environment, ferramentas de desenvolvimento para compilar, depurar, e executar aplicaes escritas em linguagem Java. Sun Java System Application Server Platform Edition 9. Para Solaris, Windows, e Linux, os arquivos da JDK podem ser obtidos para sua plataforma em http://java.sun.com/j2se/1.5.0/download.html Para Mac OS X, Java 2 Plataform Standard Edition (J2SE) 5.0 Release 4, pode ser obtida diretamente da Apple's Developer Connection, no endereo: http://developer.apple.com/java ( necessrio registrar o download da JDK). Para mais informaes: http://www.netbeans.org/community/releases/55/relnotes.html
Introduo Programao I
JEDITM
Auxiliadores especiais
Reviso Geral do texto para os seguintes Pases:
Brasil Tiago Flach Guin Bissau Alfredo C, Bunene Sisse e Buon Olossato Quebi ONG Asas de Socorro
Coordenao do DFJUG
Daniel deOliveira JUGLeader responsvel pelos acordos de parcerias Luci Campos - Idealizadora do DFJUG responsvel pelo apoio social Fernando Anselmo - Coordenador responsvel pelo processo de traduo e reviso, disponibilizao dos materiais e insero de novos mdulos Regina Mariani - Coordenadora responsvel pela parte jurdica Rodrigo Nunes - Coordenador responsvel pela parte multimdia Srgio Gomes Veloso - Coordenador responsvel pelo ambiente JEDITM (Moodle)
Agradecimento Especial
John Paul Petines Criador da Iniciativa JEDITM Rommel Feria Criador da Iniciativa JEDITM
Introduo Programao I
JEDITM
1. Objetivos
Nesta lio discutiremos as partes bsicas de um programa em Java. Comearemos explicando as partes do programa Hello.java mostrado na ltima lio. Discutiremos ao longo desta lio tambm dicas e convenes para se escrever programas de fcil entendimento. Ao final desta lio, o estudante ser capaz de:
Identificar e entender as partes bsicas de um programa escrito em Java. Diferenciar, em um programa, o que so: os tipos primitivos de dados, variveis, identificadores e operadores. Desenvolver, em Java, um programa usando os conceitos compreendidos nesta lio.
Introduo Programao I
JEDITM
As prximas 3 linhas indicam um comentrio em Java. Um comentrio uma explicao do programador usada na documentao de uma parte do cdigo. Este comentrio no propriamente uma parte do cdigo, usado apenas para fins de documentao do programa. uma boa prtica de programao adicionar comentrios relevantes ao cdigo. /** * Meu primeiro programa em Java */ Um comentrio pode ser indicado pelos delimitadores /* e */. Qualquer coisa entre estes delimitadores ignorado pelo compilador Java e tratado como comentrio. A prxima linha, public static void main(String[] args) { que tambm pode ser escrita da seguinte forma: public static void main(String[] args) { indica o nome de um mtodo no programa que o mtodo principal main. O mtodo main o ponto de partida para qualquer programa feito em Java. Todo e qualquer programa escrito
Introduo Programao I
JEDITM
em Java, com exceo de Applets, inicia com o mtodo main. Certifique-se de que a assinatura do mtodo (conforme descrita acima) est correta. A linha seguinte tambm um comentrio em Java, // exibe a mensagem "Hello world" na tela At agora, j aprendemos duas maneiras de fazer comentrios em Java. Uma posicionar o comentrio entre /* e */, e a outra colocar // antes do comentrio. A linha de instruo abaixo, System.out.println("Hello world!"); escreve o texto "Hello World!" na tela. O comando System.out.println( ), escreve na sada padro do computador o texto situado entre aspas duplas. As ltimas duas linhas, que contm somente uma chave respectivamente, o fechamento do mtodo main e da classe. Dicas de programao : 1. Os programas em Java devem sempre conter a terminao .java no nome do arquivo. 2. O nome do arquivo deve sempre ser idntico ao nome da classe pblica. Ento, por exemplo, se o nome da classe pblica Hello o arquivo dever ser salvo com o nome: Hello.java. 3. Inserir comentrios sobre o que a classe ou mtodo realiza, isso facilitar o entendimento de quem posteriormente ler o programa, incluindo o prprio autor. em cada, simbolizam,
Introduo Programao I
JEDITM
3. Comentrios em Java
Comentrios so notas escritas pelo programador para fins de documentao. Estas notas no fazem parte do programa e no afetam o fluxo de controle. Java suporta trs tipos de comentrios: comentrio de linha estilo C++, comentrio de bloco estilo C e um comentrio estilo Javadoc (utilizado compor a documentao do programa).
Introduo Programao I
JEDITM
Introduo Programao I
JEDITM
5. Identificadores em Java
Identificadores so representaes de nomes de variveis, mtodos, classes, etc. Exemplos de identificadores podem ser: Hello, main, System, out. O compilador Java difere as letras maisculas de minsculas (case-sensitive). Isto significa que o identificador Hello no o mesmo que hello. Os identificadores em Java devem comear com uma letra, um underscore _, ou um sinal de cifro $. As letras podem estar tanto em maisculo quanto em minsculo. Os caracteres subseqentes podem usar nmeros de 0 a 9. Os identificadores no podem ter nomes iguais s palavras-chave ou palavras reservadas do Java, como: class, public, void, int, etc. Discutiremos mais sobre estas palavras mais tarde. Dicas de programao: 1. Para nomes de classes, a primeira letra deve ser maiscula. Nomes de mtodos ou variveis devem comear com letra minscula. Por exemplo: ExemploDeNomeDeUmaClasse exemploDeNomeDeUmMetodo 2. No caso de identificadores com mais de uma palavra, a primeira letra de cada palavra, com exceo da primeira, deve vir em maisculo. Por exemplo: charArray fileNumber - className 3. Evite o uso de undescores no incio de um identificador. Por exemplo: _NomeDeClasse.
Introduo Programao I
JEDITM
6. Palavras-chave em Java
Palavras-chave so identificadores que, em Java, foram pr-definidas para propsitos especficos. No se pode usar esses identificadores como nomes de variveis, mtodos, classes, etc. A seguir, temos a lista com as palavras-chave em Java.
Ao longo dos tpicos seguintes, iremos abordar os significados destas palavras-chave e como so usadas nos programas em Java. Nota: true, false e null no so palavras-chave, porm, so palavras-reservadas, e, da mesma maneira, no permitido seu uso na atribuio a nomes de variveis, mtodos ou classes.
Introduo Programao I
10
JEDITM
7.1. Boolean
Um dado boolean poder assumir somente dois valores: true ou false.
7.2. Character
Os characters so representaes da tabela Unicode. Um smbolo da tabela Unicode um valor de 16 bits que pode substituir os smbolos da tabela ASCII (que possuem 8 bits). A tabela Unicode permite a insero de smbolos especiais ou de outros idiomas. Para representar um caractere usam-se aspas simples. Por exemplo, a letra "a" ser representada como 'a'. Para representar caracteres especiais, usa-se a "\" seguido pelo cdigo do caractere especial. Por exemplo, '\n' para o caractere de nova linha, '\'' representar o character ' (aspas simples) e '\u0061' representao Unicode do smbolo 'a'.
7.3. Integer
Os dados do tipo integer vm em diferentes formatos: decimal (base 10), hexadecimal (base 16), e octal (base 8). Ao usar estes diferentes tipos de dados Integer nos programas necessrio seguir algumas notaes preestabelecidas. Para dados decimais no existe notao, basta escrever o nmero. Os nmeros hexadecimais devero ser precedidos por "0x" ou "0X". E os octais devero ser precedidos por "0". Por exemplo, considere o nmero 12. Sua representao em decimal apenas o nmero 12, sem nenhuma notao adicional, enquanto que sua representao em hexadecimal 0xC (pois o nmero 12 em hexadecimal representado pela letra C), e em octal ele representado por 014. O valor padro para tipos de dados Integer o tipo int. Um int um valor, com sinal, de 32 bits. Em alguns casos pode ser necessrio forar o dado Integer a ser do tipo long, para fazer isso basta colocar a letra "l" (L minscula) ou "L" aps o nmero. Um dado do tipo long um valor com sinal de 64 bits. Falaremos mais sobre os tipos de dados mais tarde.
7.4. Float-Point
Os tipos de float-point representam dados Integer com parte fracionria. Um exemplo o nmero 3.1415 (lembrando que o padro ingls utiliza o "." como divisor da parte fracionria). Esses tipos podem ser expressos em notao cientfica ou padro. Um exemplo de notao padro o nmero 583.45 enquanto que em notao cientfica ele seria representado por 5.8345e2. O valor padro para um dado ponto-flutuante o double, que um valor de 64 bits. Se for necessrio usar um nmero com uma preciso menor (32 bits) usa-se o float, que finalizado pela letra "f" ou "F" acrescida ao nmero em questo, por exemplo, 583.45f.
Introduo Programao I
11
JEDITM
8.1. Lgico
O tipo boolean pode representar dois estados: true (verdadeiro) ou false (falso). Um exemplo : boolean resultado = true; No exemplo demonstrado acima, declarado um atributo chamado resultado do tipo boolean e atribudo a este o valor verdadeiro.
8.2. Inteiro
Os inteiros em Java podem ser representados em 5 formas, como j foi visto, e estas so: decimal, octal, hexadecimal, ASCII e Unicode. Como por exemplo: 2 077 0xBACC 'a' '\u0061' // // // // // valor 2 em decimal 0 indica que ele est representado em octal. 0x indica que ele est representado em hexadecimal. representao ASCII representao Unicode
O dado do tipo char um inteiro especial, sendo exclusivamente positivo e representa um nico Unicode. Ele deve ser, obrigatoriamente, colocado entre aspas simples (''). Sua representao como inteiro pode ser confusa para o iniciante, entretanto, o tempo e a prtica faro com que se acostume com este tipo. Por exemplo: char c = 97; byte b = 'a'; // representa o smbolo 'a' // em inteiro representa o nmero 97
possvel definir para qualquer inteiro nas formas mostradas. O que difere o tipo char dos demais inteiros que a sua sada sempre ser mostrada como um valor ASCII. Enquanto que os inteiros sero sempre mostrados por nmeros decimais. Por exemplo: char c = 97; byte b = 'a'; System.out.println("char = " + c + " - byte = " + b); Resultar: char = a - byte = 97
Introduo Programao I
12
JEDITM
Um cuidado deve ser tomado quanto aos inteiros: qualquer operao efetuada entre eles ter sempre como resultado um tipo int. Por exemplo: byte b1 = 1; byte b2 = 2; byte resultado = b1 + b2; Esta instruo final causar um erro de compilao, devendo ser modificada para: int resultado = b1 + b2;
15 at 2 -1 31 at 2 -1 63 at 2 -1
Dicas de programao: 1. Para declarar um nmero como sendo um long prefervel usar L maisculo, pois, se este estiver em minsculo, pode ser difcil distingu-lo do dgito 1.
Introduo Programao I
13
JEDITM
6.02E+23. Os dados de tipo ponto-flutuante podem assumir valores dentro das seguintes faixas: Tamanho em memria 32 bits 64 bits Dado primitivo float double Faixa 38 38 -10 at 10 -1 308 308 -10 at 10 -1
Introduo Programao I
14
JEDITM
9. Variveis
Uma varivel um espao na memria usado para armazenar o estado de um objeto. Uma varivel deve ter um nome e um tipo. O tipo da varivel indica o tipo de dado que ela pode conter. O nome das variveis deve seguir as mesmas regras de nomenclatura que os identificadores.
nota: os valores colocados entre < > so obrigatrios, enquanto que os valores contidos entre [ ] so opcionais. Aqui vemos um exemplo de programa que declara e inicializa algumas variveis: public class VariableSamples { public static void main( String[] args ){ // declara uma varivel com nome result e tipo boolean boolean result; // declara uma varivel com nome option e tipo char char option; // atribui o smbolo C para a varivel option = 'C'; // declara uma varivel com nome grade e tipo double // e a inicializa com o valor 0.0 double grade = 0.0;
} }
Dicas de programao: 1. sempre prefervel que se inicialize uma varivel assim que ela for declarada. 2. Use nomes com significado para suas variveis. Se usar uma varivel para armazenar a nota de um aluno, declare-a com o nome 'nota' e no simplesmente com uma letra aleatria 'x'. 3. prefervel declarar uma varivel por linha, do que vrias na mesma linha. Por exemplo: int variavel1; int variavel2; int variavel1, variavel2;
E no:
Introduo Programao I
15
JEDITM
Para exibirmos em qualquer dispositivo de sada o valor de uma varivel, fazemos uso dos seguintes comandos: System.out.println() System.out.print() Aqui est um simples programa como exemplo: public class OutputVariable { public static void main( String[] args ){ int value = 10; char x; x = 'A'; System.out.println(value); System.out.println("The value of x = " + x );
} }
Introduo Programao I
16
JEDITM
As variveis de referncia so aquelas que armazenam o endereo de memria onde o dado est armazenado. Ao declarar uma varivel de certa classe (varivel de classe), se declara uma varivel de referncia a um objeto daquela classe. Por exemplo, vamos supor que se tenha estas duas variveis do tipo int e da classe String. int num = 10; String nome = Hello; Suponha que o quadro abaixo represente a memria do computador, com seus endereos de memria, o nome das variveis e os tipos de dados que ele pode suportar. Endereo de memria 1001 : 1563 : : 2000 Nome da varivel num nome Dado 10 : Endereo (2000) : : "Hello"
A varivel (do tipo int) num o dado o atual valor contido por ela e, a referncia da varivel (do tipo string) nome somente armazenado o endereo de memria que contm o valor da varivel.
Introduo Programao I
17
JEDITM
10. Operadores
Em Java temos diferentes tipos de operadores. Existem operadores aritmticos, operadores relacionais, operadores lgicos e operadores condicionais. Estes operadores obedecem a uma ordem de precedncia para que o compilador saiba qual operao executar primeiro, no caso de uma sentena possuir grande variedade destes.
op1 % op2 Resto da diviso de op1 por op2 op1 - op2 op1 + op2 Subtrai op2 de op1 Soma op1 e op2
Aqui temos um programa que exemplifica o uso destes operadores: public class ArithmeticDemo { public static void main(String[] args) { // alguns nmeros int i = 37; int j = 42; double x = 27.475; double y = 7.22; System.out.println("Variables values..."); System.out.println(" i = " + i); System.out.println(" j = " + j); System.out.println(" x = " + x); System.out.println(" y = " + y); // adio dos nmeros System.out.println("Adding..."); System.out.println(" i + j = " + (i + j)); System.out.println(" x + y = " + (x + y)); // subtrao dos nmeros System.out.println("Subtracting..."); System.out.println(" i - j = " + (i - j)); System.out.println(" x - y = " + (x - y)); // multiplicao dos nmeros System.out.println("Multiplying..."); System.out.println(" i * j = " + (i * j)); System.out.println(" x * y = " + (x * y));
Introduo Programao I
18
JEDITM
// diviso dos nmeros System.out.println("Dividing..."); System.out.println(" i / j = " + (i / j)); System.out.println(" x / y = " + (x / y)); // resto da diviso System.out.println("Comuting the remainder..."); System.out.println(" i % j = " + (i % j)); System.out.println(" x % y = " + (x % y)); // misturando operaes System.out.println("Mixing types..."); System.out.println(" j + y = " + (j + y)); System.out.println(" i * x = " + (i * x));
Variables values... i = 37 j = 42 x = 27.475 y = 7.22 Adding... i + j = 79 x + y = 34.695 Subtracting... i - j = -5 x - y = 20.255 Multiplying... i * j = 1554 x * y = 198.37 Dividing... i / j = 0 x / y = 3.8054 Comuting the remainder... i % j = 37 x % y = 5.815 Mixing types... j + y = 49.22 i * x = 1016.58 Nota: Quando um nmero de tipo inteiro e um outro de nmero fracionrio so usados numa nica operao, o resultado ser dado pela varivel de maior tipo, no caso, valor de nmero fracionrio. O nmero inteiro implicitamente convertido para o nmero fracionrio antes da operao ter incio.
Introduo Programao I
19
JEDITM
Como visto na tabela acima, os operadores de incremento e decremento podem ser usados tanto antes como aps o operando. E sua utilizao depender disso. Quando usado antes do operando, provoca acrscimo ou decrscimo de seu valor antes da avaliao da expresso em que ele aparece. Por exemplo: int int int k = i = j = k = ++j 10, 3; 0; + i; //resultar em k = 4+10 = 14
Quando utilizado depois do operando, provoca, na varivel, acrscimo ou decrscimo do seu valor aps a avaliao da expresso na qual ele aparece. Por exemplo: int int int k = i = j = k = j++ 10, 3; 0; + i; //resultar em k = 3+10 = 13
Dicas de programao: 1. Mantenha sempre as operaes incluindo operadores de incremento ou decremento de forma simples e de fcil compreenso.
Introduo Programao I
20
JEDITM
O programa a seguir, mostra a utilizao destes operadores: public class RelationalDemo { public static void main(String[] args) { // alguns nmeros int i = 37; int j = 42; int k = 42; System.out.println("Variables values..."); System.out.println(" i = " + i); System.out.println(" j = " + j); System.out.println(" k = " + k); // maior que System.out.println("Greater System.out.println(" i > System.out.println(" j > System.out.println(" k > than..."); j = " + (i > j)); //false i = " + (j > i)); //true j = " + (k > j)); //false or equal to..."); " + (i >= j)); //false " + (j >= i)); //true " + (k >= j)); //true
// maior ou igual a System.out.println("Greater than System.out.println(" i >= j = System.out.println(" j >= i = System.out.println(" k >= j =
// menor que System.out.println("Less than..."); System.out.println(" i < j = " + (i < j)); //true System.out.println(" j < i = " + (j < i)); //false System.out.println(" k < j = " + (k < j)); //false // menor ou igual a System.out.println("Less than or equal to..."); System.out.println(" i <= j = " + (i <= j)); //true System.out.println(" j <= i = " + (j <= i)); //false
Introduo Programao I
21
JEDITM
System.out.println("
// igual a System.out.println("Equal to..."); System.out.println(" i == j = " + (i == j)); //false System.out.println(" k == j = " + (k == j)); //true // diferente System.out.println("Not equal to..."); System.out.println(" i != j = " + (i != j)); //true System.out.println(" k != j = " + (k != j)); //false } } A seguir temos a sada deste programa: Variables values... i = 37 j = 42 k = 42 Greater than... i > j = false j > i = true k > j = false Greater than or equal to... i >= j = false j >= i = true k >= j = true Less than... i < j = true j < i = false k < j = false Less than or equal to... i <= j = true j <= i = false k <= j = true Equal to... i == j = false k == j = true Not equal to... i != j = true k != j = false
Introduo Programao I
22
JEDITM
A diferena bsica do operador && para & que o && suporta uma avaliao de curto-circuito (ou avaliao parcial), enquanto que o & no. O que isso significa? Dado o exemplo: exp1 && exp2 o operador e lgico ir avaliar a expresso exp1, e, imediatamente, retornar um valor false se a operao exp1 for falsa. Se a expresso exp1 resultar em um valor false o operador nunca avaliar a expresso exp2, pois o valor de toda a expresso ser falsa mesmo que o resultado isolado de exp2 seja verdadeiro. J o operador & sempre avalia as duas partes da expresso, mesmo que a primeira tenha o valor false. O programa a seguir, mostra a utilizao destes operadores: public class TestAND { public static void main( String[] args ) { int i = 0; int j = 10; boolean test = false; // demonstrao do operador && test = (i > 10) && (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); // demonstrao do operador & test = (i > 10) & (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test);
Introduo Programao I
23
JEDITM
} } Como resultado, o programa produzir a seguinte sada: 0 10 false 0 11 false Note que o comando j++, na linha contendo &&, nunca ser executado, pois o operador no o avalia, visto que a primeira parte da expresso (i>10) retorna um valor booleano false.
A diferena bsica entre os operadores || e |, que, semelhante ao operador &&, o || tambm suporta a avaliao parcial. O que isso significa? Dada a expresso, exp1 || exp2 o operador ou lgico ir avaliar a expresso exp1, e, imediatamente, retornar um valor lgico true para toda a expresso se a primeira parte for avaliada como verdadeira. Se a expresso exp1 resultar em verdadeira a segunda parte exp2 nunca ser avaliada, pois o valor final da expresso ser true independentemente do resultado da segunda expresso. O programa a seguir, mostra a utilizao destes operadores: public class TestOR { public static void main( String[] args ){ int i = 0; int j = 10; boolean test = false; // demonstrao do operador || test = (i < 10) || (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); // demonstrao do operador | test = (i < 10) | (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test);
Introduo Programao I
24
JEDITM
} Como resultado, o programa produzir a seguinte sada: 0 10 true 0 11 true Note que a expresso j++ nunca ser avaliada na instruo que usa o operador ||, pois a primeira parte da expresso (i<10) j retorna true como valor final da expresso.
O resultado de uma expresso usando o operador ou exclusivo binrio ter um valor true somente se uma das expresses for verdadeira e a outra falsa. Note que ambos os operandos so necessariamente avaliados pelo operador ^. O programa a seguir, mostra a utilizao deste operador: public class TestXOR { public static void main( String[] args ){ boolean val1 = true; boolean val2 = true; System.out.println(val1 ^ val2); val1 = false; val2 = true; System.out.println(val1 ^ val2); val1 = false; val2 = false; System.out.println(val1 ^ val2); val1 = true; val2 = false; System.out.println(val1 ^ val2);
} }
Como resultado, o programa produzir a seguinte sada: false true false true
Introduo Programao I
25
JEDITM
13.4. ! (negao)
x1 VERDADEIRO FALSO Resultado FALSO VERDADEIRO
O operador de negao inverte o resultado lgico de uma expresso, varivel ou constante, ou seja, o que era verdadeiro ser falso e vice-versa. O programa a seguir, mostra a utilizao deste operador: public class TestNOT { public static void main( String[] args ){ boolean val1 = true; boolean val2 = false; System.out.println(!val1); System.out.println(!val2); } } Como resultado, o programa produzir a seguinte sada: false true
Introduo Programao I
26
JEDITM
Como resultado, o programa produzir a seguinte sada: Passed Veremos na Figura 2 um fluxograma que demonstra como o operador condicional funciona.
Veremos outro programa que tambm utiliza o operador condicional: public class ConditionalOperator { public static void main( String[] args ){ int score = 0; char answer = 'a';
Introduo Programao I
27
JEDITM
Introduo Programao I
28
JEDITM
Operador
No caso de dois operadores com mesmo nvel de precedncia, ter prioridade o que estiver mais esquerda da expresso. Dada uma expresso complexa como: 6%2*5+4/2+88-10 O ideal seria fazer uso de parnteses para reescrev-la de maneira mais clara: ((6%2)*5)+(4/2)+88-10 Dicas de programao: 1. Para evitar confuso na avaliao de suas expresses matemticas, deixe-as o mais simples possvel e use parnteses.
Introduo Programao I
29
JEDITM
16. Exerccios
16.1. Declarar e mostrar variveis
Dada a tabela abaixo, declare as variveis que se seguem de acordo com seus tipos correspondentes e valores iniciais. Exiba o nomes e valor das variveis. Nome das Variveis number letter result str O resultado esperado do exerccio : number = 10 letter = a result = true str = hello Tipo do dado integer character boolean String Valor inicial 10 a true hello
Introduo Programao I
30
JEDITM
Instituto CTS Patrocinador do DFJUG. Sun Microsystems Fornecimento de servidor de dados para o armazenamento dos vdeo-aulas. Java Research and Development Center da Universidade das Filipinas Criador da Iniciativa JEDITM. DFJUG Detentor dos direitos do JEDITM nos pases de lngua portuguesa. Banco do Brasil Disponibilizao de seus telecentros para abrigar e difundir a Iniciativa JEDITM. Politec Suporte e apoio financeiro e logstico a todo o processo. Borland Apoio internacional para que possamos alcanar os outros pases de lngua portuguesa. Instituto Gaudium/CNBB Fornecimento da sua infra-estrutura de hardware de seus servidores para que os milhares de alunos possam acessar o material do curso simultaneamente.
Introduo Programao I
31