Algoritmos e programação - 2013.1 - Aula 9

57
Algoritmos e Programação Prof.º Thyago Maia Prof. Thyago Maia 2013.1

description

Algoritmos e programação - 2013.1 - Aula 9

Transcript of Algoritmos e programação - 2013.1 - Aula 9

Page 1: Algoritmos e programação - 2013.1 - Aula 9

Algoritmos e Programação

Prof.º Thyago MaiaProf.  Thyago Maia2013.1

Page 2: Algoritmos e programação - 2013.1 - Aula 9

Aula 9

Objetivos• Introduzir a linguagem de 

programação Java;p g ç ;• Apresentar a estrutura básica de 

l Juma classe Java;• Apresentar os métodos de leitura 

e escrita de dados em Java;

2

Page 3: Algoritmos e programação - 2013.1 - Aula 9

Passos para a Construção de Software

Page 4: Algoritmos e programação - 2013.1 - Aula 9

Passos para a Construção de Software

• 1º passo: Conhecimento do problema;• 2º passo: Construção do algoritmo;2  passo: Construção do algoritmo;• 3º passo: Codificação do algoritmo em uma li d ãlinguagem de programação;

Problema !!! Solução Codificação

4

Page 5: Algoritmos e programação - 2013.1 - Aula 9

Linguagens de ProgramaçãoLinguagens de Programação

Page 6: Algoritmos e programação - 2013.1 - Aula 9

Linguagens de Programaçãog g g ç

• Para armazenar um algoritmo na memória de um computador, e para que o mesmo seja p p q jexecutável, é necessário que o mesmo seja programado (codificado);programado (codificado);

• Precisamos transcrever nossos algoritmos lpara uma linguagem de programação;

• Exemplos: Pascal, C, Java, Cobol, etc.Exemplos: Pascal, C, Java, Cobol, etc. • Na disciplina, utilizaremos a linguagem de 

ã Jprogramação Java;6

Page 7: Algoritmos e programação - 2013.1 - Aula 9

A Linguagem JavaA Linguagem Java

Page 8: Algoritmos e programação - 2013.1 - Aula 9

A Linguagem Javag g

• Em 1991, A Sun Microsystems financiou uma pesquisa corporativa interna com codinome p q pGreen;

• O projeto resultou no desenvolvimento de• O projeto resultou no desenvolvimento de uma linguagem baseada em C e C++, chamada 

l k ( lh )inicialmente de Oak (carvalho);• Quando uma equipe da Sun visitou umaQuando uma equipe da Sun visitou uma cafeteria local, o nome Java foi sugerido e pegou;pegou;

8

Page 9: Algoritmos e programação - 2013.1 - Aula 9

A Linguagem Javag g

9

Page 10: Algoritmos e programação - 2013.1 - Aula 9

A Linguagem Javag g

• Utiliza o paradigma de programação orientada a objetos (POO);

• Programas em Java consistem em partes chamadas classes;

• Classes definem os objetos presentes no sistema de software;so a e;

• Cada classe determina: O comportamento dos objetos (instruções e métodos);– O comportamento dos objetos (instruções e métodos);

– Os estados possíveis dos objetos (atributos);O relacionamento entre objetos;– O relacionamento entre objetos;

10

Page 11: Algoritmos e programação - 2013.1 - Aula 9

Sistema de Desenvolvimento Java

Page 12: Algoritmos e programação - 2013.1 - Aula 9

Sistema de Desenvolvimento Java

• Sistemas de desenvolvimento Java consistem em várias partes:p– Um ambiente de desenvolvimento (IDE);O Java Development Kit (JDK);– O Java Development Kit (JDK);

• Fornece o compilador e outras ferramentas;F bibli t d l é t id• Fornece uma biblioteca de classes pré‐construidas;

– O Java Runtime Environment (JRE);• Inclui uma Máquina Virtual Java (JVM), bibliotecas de código e componentes necessários para executar programas Java;programas Java;

• Está incluído no JDK; 12

Page 13: Algoritmos e programação - 2013.1 - Aula 9

Ambientes de Desenvolvimento (IDEs)

Page 14: Algoritmos e programação - 2013.1 - Aula 9

Ambientes de Desenvolvimento (IDEs)

• Ambientes integrados de desenvolvimento (IDEs):( )– São programas de computador que reúnem características e ferramentas de apoio aocaracterísticas e ferramentas de apoio ao desenvolvimento de software; Objetivam agilizar o processo de desenvolvimento– Objetivam agilizar o processo de desenvolvimento de software;E– Ex.:

• Eclipse IDE;• NetBeans IDE;

14

Page 15: Algoritmos e programação - 2013.1 - Aula 9

Eclipse IDEEclipse IDE

Page 16: Algoritmos e programação - 2013.1 - Aula 9

Eclipse IDEp

• IDE utilizado no curso;• Software open source de desenvolvimento deSoftware open source de desenvolvimento de software (em Java e outras linguagens);P j i i i d l IBM d d• Projeto iniciado pela IBM e doado para a comunidade software livre;

• JDK precisa estar pré‐instalado;

• Download em: http://www.eclipse.org

16

Page 17: Algoritmos e programação - 2013.1 - Aula 9

Criando um Projeto no Eclipse IDE

Page 18: Algoritmos e programação - 2013.1 - Aula 9

Criando um Projeto no Eclipse IDE

• Já com o software instalado e iniciado, clique na opção de menu File > New > Java Project;pç j

E P j N d fi• Em Project Name, defina um nome para seu projeto;

Cli Fi i h• Clique em Finish;

18

Page 19: Algoritmos e programação - 2013.1 - Aula 9

Criando uma Classe JavaCriando uma Classe Java

Page 20: Algoritmos e programação - 2013.1 - Aula 9

Criando uma Classe Java

• No painel Package Explorer (lado esquerdo da janela principal da IDE), clique com o botão j p p ) qdireito do mouse sobre a pasta Nome do projeto > src > (default package);projeto > src > (default package);

• No menu apresentado em seguida, clique na opção New > Class;opção New  Class;

20

Page 21: Algoritmos e programação - 2013.1 - Aula 9

Criando uma Classe Java

• Na janela em seguida, em Name, defina o nome da sua classe (sem espaços e caracteres ( p çespeciais);

• Selecione a opção public static voidmain(String args[]) em Which method stubswould you like to create?;would you like to create?;

• Clique em Finish;21

Page 22: Algoritmos e programação - 2013.1 - Aula 9

Editando um Arquivo javaEditando um Arquivo .java

Page 23: Algoritmos e programação - 2013.1 - Aula 9

Editando um Arquivo .java

• No editor de código do Eclipse (parte central da janela principal do IDE) será apresentado o j p p ) pcorpo básico para uma classe Java:

public class nome_classe {

/*** @* @param args*/public static void main(String[] args) {// TODO Auto generated method stub// TODO Auto-generated method stub

}

23

}

Page 24: Algoritmos e programação - 2013.1 - Aula 9

Editando um Arquivo .java

• Exemplo 1: Método de saída padrão (equivalente a função escreval em algoritmos)( q ç g )

public class nome_classe {

bli t ti id i (St i [] ) {public static void main(String[] args) {

System.out.println(“Olá mundo”);

}

}

24

}

Page 25: Algoritmos e programação - 2013.1 - Aula 9

Testando sua aplicação Java no Eclipse IDE

Page 26: Algoritmos e programação - 2013.1 - Aula 9

Testando sua aplicação Java no Eclipse IDE

• Salve sua classe Java (Ctrl+S);

• Pressione as teclas Ctrl + F11 ou...

• No Package Explorer clique com o botãoNo Package Explorer, clique com o botão direito do mouse sobre o arquivo .java que 

ê b d ivocê acabou de criar;

• Clique em Run As > Java Application; 26

Page 27: Algoritmos e programação - 2013.1 - Aula 9

Testando sua aplicação Java no Eclipse IDE

• Sua aplicação será executada na parte inferior da janela principal do Eclipse (Aba Console);j p p p ( )

N i l d ifi• Neste mesmo painel, podemos verificar possíveis erros de compilação e execução das nossas classes (Aba Problems);

27

Page 28: Algoritmos e programação - 2013.1 - Aula 9

Observações de SintaxeObservações de Sintaxe

Page 29: Algoritmos e programação - 2013.1 - Aula 9

Observações de Sintaxe

É• Java É CASE SENSITIVE!• Cada instrução em Java deverá ser finalizadaCada instrução em Java deverá ser finalizada com ;O d ódi d l• O corpo de código de classes, estruturas e métodos devem ser iniciados com { e encerrados com }

• As regras para a identificação de classes• As regras para a identificação de classes, métodos, objetos e variáveis são as mesmas i t t i t l itvistas anteriormente em algoritmos;

29

Page 30: Algoritmos e programação - 2013.1 - Aula 9

VariáveisVariáveis

Page 31: Algoritmos e programação - 2013.1 - Aula 9

Variáveis

• Em Java, podemos declarar variáveis em qualquer região do corpo de código do q q g p gmétodo principal (main);

• Sintaxe:tipo_primitivo identificador;outipo_primitivo identificador = valor_inicial;

31

Page 32: Algoritmos e programação - 2013.1 - Aula 9

Tipos PrimitivosTipos Primitivos

Page 33: Algoritmos e programação - 2013.1 - Aula 9

Tipos Primitivos

• São os tipos de dados mais usuais e básicos, habituais em outras linguagens de g gprogramação:

• Inteiros (equivalentes ao tipo inteiro do• Inteiros (equivalentes ao tipo inteiro do VisuAlg):– byte (1 byte);– short (2 bytes);( y );– int (4 bytes);long (8 bytes);– long (8 bytes);

33

Page 34: Algoritmos e programação - 2013.1 - Aula 9

Tipos Primitivos

• Reais (equivalentes ao tipo real do VisuAlg):– float (1 byte);( y );– double (2 bytes);

• Lógico (equivalente ao tipo lógico do VisuALg):– boolean (true ou false);

34

Page 35: Algoritmos e programação - 2013.1 - Aula 9

Exemplo

public class principal {p p p {

public static void main(String[] args) {

int num1 = 9;int num2 = 10;

System.out.println(num1);System.out.println(num2);S t t i tl ("S t 1 2 ")System.out.println("Soma entre num1 e num2:");System.out.println(num1+num2);System.out.println("Diferença entre num1 e

num2: " + (num1-num2));}

35

}

Page 36: Algoritmos e programação - 2013.1 - Aula 9

Exemplo

public class principal {

public static void main(String[] args) {

double peso = 55 7;double peso = 55.7;double altura = 1.80;

S t t i tl ("S " + )System.out.println("Seu peso: " + peso);System.out.println("Sua altura: " + altura);

}

}

36

Page 37: Algoritmos e programação - 2013.1 - Aula 9

A Classe StringA Classe String

Page 38: Algoritmos e programação - 2013.1 - Aula 9

A classe String

• Um objeto da classe String é equivalente a uma variável do tipo literal no VisuAlg (uma p g (cadeia de caracteres). Exemplo:

public class principal {public class principal {

public static void main(String[] args) {

String nome = “Thyago Maia”String time = “Sport Recife”;

System.out.println("Seu nome: " + nome);System.out.println("Seu time: " + time);

}

38}

Page 39: Algoritmos e programação - 2013.1 - Aula 9

OperadoresOperadores

Page 40: Algoritmos e programação - 2013.1 - Aula 9

Operadores

• Aritméticos: soma (+), subtração (‐), multiplicação (*), divisão (/) e resto da divisão p ç ( ) ( )(%);

• Atribução: = (Equivalente ao < do VisuAlg);• Atribução: = (Equivalente ao <- do VisuAlg);• Concatenação: + (Unir textos)• Incremento (++) e decremento (‐‐);O d l i i i (>)• Operadores relacionais: maior que (>), menor que (<), igual (==), diferente (!=), maior ou igual (>=), menor ou igual (<=);

40

Page 41: Algoritmos e programação - 2013.1 - Aula 9

Operadores

Õ Operadores lógicos: E (&&), OU (||), NÃO (!);

41

Page 42: Algoritmos e programação - 2013.1 - Aula 9

Entrada em Java (Console)Entrada em Java (Console)

Page 43: Algoritmos e programação - 2013.1 - Aula 9

Entrada em Java (Console)

• Para a entrada de valores a partir do teclado, utilizamos métodos da classe Scanner;

• Sintaxe da instância:

Scanner nome_objeto = new Scanner(System.in);

• Para a classe Scanner, existem métodos de l it ífi d ti i iti dleitura específicos para cada tipo primitivo de dados;

43

Page 44: Algoritmos e programação - 2013.1 - Aula 9

Entrada em Java (Console)

• Para a leitura de dados inteiros:

S t d S (S t i )Scanner entrada = new Scanner(System.in);int numero;

• Para a leitura de dados fracionários:

numero = entrada.nextInt();

Para a leitura de dados fracionários:Scanner entrada = new Scanner(System.in);float numero1;float numero1;double numero2;

1 t d tFl t()

44

numero1 = entrada.nextFloat();numero2 = entrada.nextDouble();

Page 45: Algoritmos e programação - 2013.1 - Aula 9

Entrada em Java (Console)

• Para a leitura de dados literais:

S t d S (S t i )Scanner entrada = new Scanner(System.in);String nome;

• Para a leitura de dados lógicos:

nome = entrada.next();

Para a leitura de dados lógicos:

Scanner entrada = new Scanner(System in);Scanner entrada = new Scanner(System.in);boolean ligou;

li t d tB l ()

45

ligou = entrada.nextBoolean();

Page 46: Algoritmos e programação - 2013.1 - Aula 9

Entrada em Java (Console)

• Observação: A classe Scanner faz parte da biblioteca de classes java.util. Deveremos importar a referida biblioteca em nossas classes para que as mesmas possam instanciar a classe Scanner e acessar seus métodos de entrada:

import java.util.Scanner;

public class nome programa {public class nome_programa {

Scanner entrada = new Scanner(System.in);

46

...

Page 47: Algoritmos e programação - 2013.1 - Aula 9

Entrada em Java (Console)

• Exemplo: Faça um programa que receba 3 notas de um aluno e calcule sua média;

47

Page 48: Algoritmos e programação - 2013.1 - Aula 9

import java.util.Scanner;

public class calcula_media {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);

float nota1, nota2, nota3, media;

System.out.println("Digite a primeira nota:");1 d l ()nota1 = entrada.nextFloat();

System.out.println("Digite a segunda nota:");t 2 t d tFl t()nota2 = entrada.nextFloat();

System.out.println("Digite a terceira nota:");nota3 = entrada nextFloat();nota3 = entrada.nextFloat();

media = (nota1+nota2+nota3)/3;System out println("Média final: " + media);

48

System.out.println( Média final: + media);}

}

Page 49: Algoritmos e programação - 2013.1 - Aula 9

Entrada em Java (Console)

• Exemplo: Faça um programa que receba a distância, o tempo que um veículo levou para p q ppercorrê‐la e calcula sua velocidade média;

– Velocidade = distância/tempo

49

Page 50: Algoritmos e programação - 2013.1 - Aula 9

import java.util.Scanner;

public class calcula_velocidade {

public static void main(String[] args) {public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);float velocidade, distancia, tempo;

System.out.println("Digite a distância:");distancia = entrada.nextFloat();

System.out.println("Digite o tempo:");y p ( g p );tempo = entrada.nextFloat();

velocidade = distancia/tempo;velocidade distancia/tempo;

System.out.println(“Velocidade: " + velocidade);}

50

}}

Page 51: Algoritmos e programação - 2013.1 - Aula 9

Entrada em Java (Console)

• Faça um programa que receba dois números inteiros (variáveis A e B), escreva o conteúdo ( )das variáveis na tela, troque o conteúdo das duas variáveis e escreva novamente oduas variáveis e escreva novamente o conteúdo das mesmas;

51

Page 52: Algoritmos e programação - 2013.1 - Aula 9

import java.util.Scanner;

public class calcula_velocidade {

public static void main(String[] args) {

Scanner entrada = new Scanner(System.in);int a, b, aux;

System.out.println(“1º número:");a = entrada.nextInt();System out println(“2º número:");System.out.println( 2 número:");b = entrada.nextInt();

System out println(“valores digitados: ” + a + “ ” + b);System.out.println( valores digitados: + a + , + b);

aux = a; a = b;a b; b = aux;

System.out.println(“Valores invertidos: ” + a + “,” + b);

52

y p ( , );}

}

Page 53: Algoritmos e programação - 2013.1 - Aula 9

ExercíciosExercícios

Page 54: Algoritmos e programação - 2013.1 - Aula 9

Exercícios

• Faça um programa que lê a base maior, a base menor e a altura de um trapézio. A partir p pdestes dados, o programa deverá calcular a área do trapézioárea do trapézio. 

54

Page 55: Algoritmos e programação - 2013.1 - Aula 9

Exercícios

• Faça um programa que lê o nome de um funcionário, o número de horas trabalhadas e o valor que recebe por hora. Com estas informações calcular o salário desteinformações, calcular o salário deste funcionário e exibir seu nome e salário final.

• Faça um programa que receba o preço de umFaça um programa que receba o preço de um produto, o valor pago pelo cliente e retorne o troco a ser dadotroco a ser dado. 

55

Page 56: Algoritmos e programação - 2013.1 - Aula 9

Exercícios

• Faça um programa que lê dois números e calcule a soma, subtração, multiplicação e ç p çdivisão entre os mesmos. Exibir as respostas no final do processamento;no final do processamento;

56

Page 57: Algoritmos e programação - 2013.1 - Aula 9

Exercícios

• Escreva um programa que lê uma temperatura em graus Fahrenheit, calcula e escreve o valor gcorrespondente em graus Celsius.

– Fórmula: C = ((F‐32) / 9) * 5

57