60
 Conceitos básicos de programação Programação em Java Prof. Maurício Braga

Conceit Os Basic Os Program a Cao

Embed Size (px)

Citation preview

  • Conceitos bsicos de

    programao

    Programao em Java

    Prof. Maurcio Braga

  • 2/60

    Algoritmos

    Estruturas para construo de software

    Tipos de Dados;

    Variveis;

    Constantes;

    Operadores aritmticos, relacionais e lgicos;

    Atribuio;

    Comandos de condio ou seleo;

    Comandos de repetio.

  • 3/60

    Tipos de dados

    Dado pode ser definido como informao em estado primitivo cujo processamento pode gerar informao til.

    Devido a natureza do que vai ser armazenado em memria, existem tipos de dados diferentes.

    Tipo de dado representa o conjunto de valores possveis para um dado.

  • 4/60

    Tipos de dados

    Iremos utilizar apenas cinco tipos de dados durante a criao de algoritmos: Inteiro Para representar informaes que no possuem parte

    fracionria. Ex: 1, 2, 40000, etc.;

    Real Para representar informaes que podem possuir parte fracionria. Ex: 3.1415;

    Lgico Para representar um estado ou situao que pode ser apenas verdadeira (true) ou falsa (false);

    Caractere Utilizado para armazenar um nico caractere na memria. Ex: A;

    Cadeia de caracteres Utilizado para armazenar um seqncia de caracteres na memria. Ex: Computador.

  • 5/60

    Exerccios

    Identifique o tipo de dado para a representao das informaes abaixo:

    Quantidade de brinquedos de uma criana;

    Altura de uma pessoa;

    Aviso em uma placa;

    Sexo de uma pessoa;

    Salrio de um funcionrio;

    CEP de uma carta;

    Estado de um computador quanto ao seu funcionamento;

    Nmero de cheques emitidos por um cliente em um ms.

  • Tipos de dados em Java

    Java possui oito tipos primitivos de dados: Lgico: boolean

    Texto (1 caractere): char

    Inteiros: byte, short, int e long

    Reais: double e float

    Todos os tipos numricos possuem sinal.

    String: representa uma cadeia de caracteres.

    6/60

  • 7/60

    Operadores

    Operadores aritmticos Utilizados para obteno de dados numricos;

    Consistem de: Adio (+);

    Subtrao (-);

    Multiplicao (*);

    Diviso real entre dois nmeros (/);

    Diviso inteira entre dois nmeros inteiros (div);

    Resto da diviso inteira entre dois nmeros inteiros (mod).

  • 8/60

    Operadores em Java

    Operadores aritmticos Consistem de:

    Adio (+);

    Subtrao (-);

    Multiplicao (*);

    Diviso real entre dois nmeros (/);

    Diviso inteira entre dois nmeros inteiros (/);

    Resto da diviso inteira entre dois nmeros inteiros (%).

  • 9/60

    Operadores aritmticos

    Precedncia de operadores aritmticos

    1. ( ) Parnteses;

    2. Potenciao, radiciao;

    3. Multiplicao, divises e resto da diviso;

    4. Adio ou subtrao.

    Ex:

    2 * (2 4) + 3* 4 = ?

  • 10/60

    Montagem de expresses

    Exemplos

    3 + 4 * 9

    3 + 36

    39

    (3 + 4) * 9

    7 * 9

    63

    8 pot(4*2,2) + 5 8 pot(8,2) +5 8 64 + 5 -56 + 5

    -51

  • 11/60

    Exerccio

    ( 30 % 4 * pot(3,3) ) * -1

  • 12/60

    Operadores

    Operadores relacionais Utilizados na comparao de literais ou nmeros;

    Retornam valores lgicos;

    Consistem de:

    Igual a (==);

    Diferente de (!=);

    Maior que (>);

    Menor que (=);

    Menor ou igual a (

  • 13/60

    Operadores

    Operadores lgicos

    Utilizados para combinar resultados de expresses lgicas;

    Consistem de:

    E (AND);

    OU (OR);

    NO (NOT).

  • 14/60

    Tabela verdade das operaes lgicas

    E

    OU

    x y x E y

    Verdadeiro Falso Falso

    Verdadeiro Verdadeiro Verdadeiro

    Falso Verdadeiro Falso

    Falso Falso Falso

    x y x OU y

    Verdadeiro Falso Verdadeiro

    Verdadeiro Verdadeiro Verdadeiro

    Falso Verdadeiro Verdadeiro

    Falso Falso Falso

  • 15/60

    Tabela verdade das operaes lgicas

    NO

    x NO x

    Verdadeiro Falso

    Falso Verdadeiro

  • 16/60

    Operadores lgicos

    Precedncia de operadores lgicos

    1. No;

    2. E, OU.

  • 17/60

    Operadores lgicos

    Exemplos:

    (3 == 5) E (4 > 2) =

    (2 > 4) OU (2 < 4) =

    15 % 4 < 19 % 6 =

    Falso

    Verdadeiro

    Falso

    F V

    F V

    F

  • Operadores Lgicos em Java

    Operadores Booleanos: ! - No & - E

    | - Ou ^ - Ou Exclusivo

    Operadores Booleanos com Curto-Circuito || - Ou && - E

    18/60

  • 19/60

    Montagem de expresses

    Para realizao de determinados clculos, pode ser necessrio fazer combinaes de operadores, bom como a adio de parnteses.

    Mas que operador ser calculado primeiro? O que tiver maior prioridade.

  • 20/60

    Montagem de expresses

    Tabela de prioridades de operadores:

    1 Parnteses mais internos

    2 Funes

    3 Operadores aritmticos

    1 Multiplicativos (*, /, %);

    2 Aditivos (+, -)

    4 Operadores relacionais

    5 Operadores lgicos

    1 NO

    2 E

    3 OU

  • 21/60

    Exerccios

    pot(3,2)/3 < 2 e 5==5

    NO ( 3 + 5 != 5 / 2 - 1 )

    Falso ou 20 / (18/3) != (21/3) / 2

  • 22/60

    Constantes e Variveis

    Constante

    Possui valor fixo durante execuo do programa;

    Pode ser numrica, lgica ou literal.

    Varivel

    Um dos conceitos mais importantes na construo de algoritmos.

    Representa um espao de memria reservado para armazenar determinado tipo de dado;

    Deve receber um nome para referenciao e modificao;

    Deve possuir um tipo associado;

    Quando um algoritmo termina sua execuo, todas as variveis so apagadas da memria;

    S podem armazenar um dado por vez.

  • 23/60

    Constantes e Variveis

    Nomes de Variveis O nome de uma varivel deve ser nico dentro de um mesmo

    algoritmo.

    Deve comear por uma letra, podendo-se incluir aps esta letra outras letras, dgitos ou o sinal de underline ( _ ). Este tipo de nome conhecido como identificador.

    O identificador no pode possuir acentos, nem ser igual ao nome de um comando.

  • 24/60

    Identificadores em Java

    Devem comear com uma letra, um cifro ($) ou um underscore (_)

    Exemplos:

    1. Foobar

    2. BIGInterface

    3. $incomeAfterExpenses

    4. 3_node5

    5. !theCase

    Ok!

    Ok!

    Ok!

    Errado!

    Errado!

  • 25/60

    Constantes e Variveis

    Ex:

    Varivel

    Constante

    media = P1 + P2 + P3 + P4

    4

  • 26/60

    Constantes e Variveis

    Declarao de variveis

    Toda varivel utilizada em um algoritmo deve ser declarada.

    A sintaxe utilizada em pseudocdigo :

    :, , ...;

  • 27/60

    Sintaxe dos algoritmos

    Os algoritmos em portugus estruturado devem possuir

    a seguinte estrutura: Variveis

    // Declarao de variveis

    : ;

    : ;

    : ;

    // Corpo do algoritmo

    Incio

    ;

    ;

    ;

    Fim.

    // Mdulos

    Mdulo ;

    [[

    ...

    ]]

    Declarao de variveis

    Comentrio

    Mdulos dos algoritmos

    Parte principal

    do algoritmo

    Indentao

    Separador de comandos

  • 28/60

    Atribuio

    O que atribuio?

    Atribui ou associa um valor a uma varivel ou constante

    Ex:

    nome = Jos; media = (nota1 + nota2) / 2;

  • 29/60

    Funes

    Atuam como um pequeno programa que, tendo valores de entrada, geram (retornam) um resultado.

    (, , ...)

  • 30/60

    Funes Matemticas disponveis no pacote

    Java.Math

    Funo Utilidade Tipo do resultado

    log(double x) Retorna o valor do logaritmo neperiano de x Real

    exp(double x) Retorna o valor de ex Real

    pow(double x,

    double y)

    Retorna o valor de x elevado a y. Real

    round(float x) Arredonda x para o inteiro mais prximo Inteiro

    sqrt(double x) Retorna a raiz quadrada de x Real

    sin(double x) Retorna o seno de x Real

    cos(double x) Retorna o co-seno de x Real

    atan(double x) Retorna o arco, em radianos, cuja tangente x Real

    abs(int x) Retorna o mdulo de x (|x|) Inteiro

  • 31/60

    Comando de entrada de dados

    Normalmente precisamos de dados de entrada para

    serem processados pelos algoritmos.

    Desta forma, precisamos de um comando para solicitar

    e obter dados fornecidos pelo usurio.

    Quando um computador encontra um comando de

    entrada de dados, ele suspende a execuo do

    programa at que os dados sejam fornecidos.

    leia (varivel1);

  • 32/60

    Comando de entrada de dados em

    Java

    Para fazer a leitura de dados do teclado em

    programas Java, utilizaremos o objeto Scanner:

    O objeto Scanner pode ser usado com variveis

    numricas, lgicas e do tipo texto.

    Scanner s = new Scanner(System.in);

    int numero = s.nextInt();

  • 33/60

    Comando de sada de dados

    Da mesma forma que precisamos receber dados

    externos, precisamos fornecer dados e instrues para

    os usurios.

    Desta forma, precisamos de um comando para retornar

    dados e/ou mensagens em um dispositivo de sada.

    Ex:

    escreva O saldo atual , saldo;

    escreva soma;

    Escreva ,...;

  • 34/60

    Comando de sada de dados em Java

    Para escrevermos na tela, usaremos a funo println, disponvel no Java.

    Para concatenar uma varivel com um texto, usamos o sinal +.

    Ex: System.out.println(O saldo atual + saldo); System.out.println(soma);

    System.out.println(var ou expresso ou mensagem +...);

  • 35/60

    Exemplo de construo de algoritmo

    Exemplo 1

    Exibir a soma de dois nmeros inteiros fornecidos pelo usurio.

    Soluo

    Objetivo construir um algoritmo que ensine o computador a

    executar uma soluo para o problema proposto.

    O que o algoritmo deve fazer?

    Calcular a soma de dois nmeros e exibi-la ao usurio.

    O valor da soma dever ser armazenado em memria antes de

    ser exibido

    necessrio ento a criao de uma varivel soma

    necessrio que ao trmino do algoritmo a varivel soma seja

    exibida para o usurio

    Sada de dados

    escreva soma;

  • 36/60

    Exemplo de construo de algoritmo

    Soluo (cont.)

    O enunciado afirma que os valores a serem somados devem ser

    informados pelo usurio

    O algoritmo possui dados de entrada, e estes dados de entrada

    devero ser armazenados em memria. necessria a criao de

    duas variveis num1 e num2 para armazenar os dados fornecidos

    pelo usurio.

    necessrio a obteno destes dados do usurio atravs do

    comando de entrada de dados.

    O processamento do algoritmo deve possuir apenas a operao

    de soma.

    Utilizaremos o operador de adio (+) para ensinar ao computador

    que operao, e com quais valores, deve ser realizada.

    O resultado da soma dever ser armazenado em memria pela

    varivel soma, logo precisaremos utilizar o comando de atribuio.

    leia num1;

    leia num2;

    soma = num1 + num2;

  • 37/60

    Exemplo de construo de algoritmo

    Exemplo 1

    Exibir a soma de dois nmeros inteiros fornecidos pelo usurio.

    Soluo

    Variveis

    inteiro: num1, num2, soma;

    Incio

    leia(num1);

    leia(num2);

    soma = num1 + num2;

    escreva(soma);

    Fim

  • 38/60

    Exemplo Java

    Escrever o programa Al mundo! em Java.

  • 39/60

    Algoritmo Al mundo!

    Soluo

    Variveis

    // No tem variveis

    Incio

    escreva(Alo mundo!);

    Fim

  • 40/60

    Programa Al mundo! em Java

    public static void main(String[] args) {

    System.out.println("Al mundo!);

    }

  • 41/60

    Exemplo

    Implementar em Java um programa que solicite

    duas notas de um aluno e calcule a sua mdia.

  • 42/60

    Algoritmo do programa mdia:

    Incio // declarao de variveis

    real: nota1, nota2, media;

    // entrada de dados

    leia(nota1);

    leia(nota2);

    // processamento (clculo da mdia)

    media = (nota1 + nota2) / 2;

    // sada de dados

    escreva(media);

    Fim

  • 43/60

    Programa mdia em Java

    public static void main(String[] args) {

    // Variveis: nota1, nota2 e mdia do aluno

    double nota1 = 0, nota2 = 0, media = 0;

    System.out.println("Entre a primeira e a segunda nota do aluno:");

    // entrada de dados

    Scanner s = new Scanner (System.in);

    nota1 = s.nextDouble();

    nota2 = s.nextDouble();

    // clculo da mdia

    media = (nota1 + nota2)/2;

    System.out.println("A mdia : "+media);

    }

  • 44/60

    Exerccio

    Implementar em Java um programa que, a partir do

    valor em Celsius digitado pelo usurio, calcula o valor

    da temperatura em Fahrenheit.

    Frmula converso F C:

    9/5*)32( FC

  • 45/60

    Programa temperatura em Java

    public static void main(String[] args) {

    // Variveis: temperaturaCelsius e temperaturaFahrenheit

    double temperaturaCelsius = 0, temperaturaFahrenheit = 0;

    System.out.println("Entre a temperatura em Celsius:");

    // entrada de dados

    Scanner s = new Scanner (System.in);

    temperaturaCelsius = s.nextDouble();

    // clculo da temperatura em Fahrenheit

    temperaturaFahrenheit = (9*temperaturaCelsius/5)+32;

    System.out.println("A temperatura : "+ temperaturaFahrenheit);

    }

  • 46/60

    Strings

    Implementam o tipo cadeia de caracteres em Java;

    Em Java, Strings so objetos que disponibilizam um

    conjunto de funes que podem ser usadas pelo

    usurio.

    Pode-se concatenar uma String com uma outra varivel

    ou expresso com o sinal +.

  • 47/60

    Strings

    Exemplos:

    String s1 = Exemplo de uma string;

    int x = 10;

    String s2 = Idade de ricardo = + x;

    int y = 5;

    String s3 = Respostas: x = + x + e y = + y;

    System.out.println(s3);

  • 48/60

    Igualdade de Strings

    Strings no devem ser comparadas com ==, e sim com

    o mtodo equals;

    Comparao diferencia letras maisculas e minsculas;

    Caso a comparao no deva levar em conta

    maisculas e minsculas, deve-se usar o mtodo

    equalsIgnoreCase;

  • 49/60

    Igualdade de Strings

    Ex:

    String S1 = Banana;

    String S2 = banana;

    System.out.println("mtodo equals = " + s1.equals(s2));

    System.out.println("mtodo equalsIgnoreCase = " +

    s1.equalsIgnoreCase(s2));

  • 50/60

    Manipulao de Strings

    Algumas funes teis para manipulao de

    Strings:

    int length() Retorna o comprimento da string;

    int indexOf(String s) Retorna a posio da primeira ocorrncia da substring s na String;

    char charAt(int ndice) Retorna o caractere na posio apontada por ndice (o primeiro caractere

    est na posio 0).

  • 51/60

    Manipulao de Strings

    Ex:

    String s1 = Banana;

    int indice = s1.indexOf("na");

    System.out.println(" Posicao da substring 'na' em s1 : " +

    indice);

    char letra = s1.charAt(5);

    System.out.println(" A 6. letra em S1 : " + letra);

  • 52/60

    Exerccio

    Ler o nome e a qualidade de uma pessoa, e

    exibir a mensagem uma pessoa que tem .

  • 53/60

    Exerccio

    Soluo

    Exemplo simples de composio de frases em

    algoritmos.

    Para as entradas Maria e coragem, a sada seria

    Maria uma pessoa de coragem.

    Este algoritmo no necessita de clculos, apenas

    leitura dos dados e exibio de composio entre

    variveis e mensagens.

  • 54/60

    Soluo

    O algoritmo fica assim...

    Variveis

    nome, qualidade : cadeia;

    Incio

    ler nome;

    ler qualidade;

    escrever nome + uma pessoa que tem + qualidade; Fim

  • 55/60

    Programa mensagem em Java

    public static void main(String[] args) {

    // declarao de variveis

    String nome=null, qualidade=null;

    System.out.println("Entre o nome:");

    Scanner s = new Scanner (System.in);

    nome = s.next();

    System.out.println("Entre a qualidade:");

    qualidade = s.next();

    System.out.println(nome+ " uma pessoa que tem "+qualidade);

    }

  • 56/60

    Exerccio

    Faa um programa para ler o salrio de um funcionrio e imprimi-lo com um aumento de 15%.

  • 57/60

    Programa salrio em Java

    public static void main(String[] args) {

    // declarao de variveis

    double salario_antigo=0, salario_novo=0;

    System.out.println("Entre o valor do salrio do funcionrio:");

    Scanner s = new Scanner (System.in);

    salario_antigo= s.nextDouble();

    salario_novo = salario_antigo*1.15;

    System.out.println("O valor do salrio com aumento de 15% R$ " + salario_novo + " reais.);

    }

  • 58/60

    Funes matemticas em Java

    Disponveis na classe Math;

    Para chamar uma funo matemtica, basta inserirmos em algum ponto do programa Math + o nome da mesma, junto com a lista de parmetros (se houver) que a mesma recebe.

    Math.(parametro1, parametro2);

    Para saber quais funes esto disponveis, deve-se consultar a documentao.

  • 59/60

    Funes matemticas com Java public static void main(String[] args) {

    double a=0, b=0;

    System.out.println("Entre o valor de a:");

    Scanner s = new Scanner (System.in);

    a= s.nextDouble();

    System.out.println("Entre o valor de b:");

    b= s.nextDouble();

    System.out.println(a+" elevado ao "+b+" igual a " + Math.pow(a,b));

    System.out.println("a raiz quadrada de "+a+" igual a " + Math.sqrt(a));

    System.out.println("o maior entre "+a+" e "+b+" " + Math.max(a,b));

    System.out.println("o menor entre "+a+" e "+b+" " + Math.min(a,b));

    System.out.println("o log de "+a+" " + Math.log10(a));

    System.out.println("o valor de PI "+Math.PI);

    }

  • Conceitos bsicos de

    programao

    Programao em Java

    Prof. Maurcio Braga