Mostrando postagens com marcador Programação Orientada a Objetos. Mostrar todas as postagens
Mostrando postagens com marcador Programação Orientada a Objetos. Mostrar todas as postagens

quinta-feira, 20 de dezembro de 2018

Programação: Esboçar o algoritmo ajuda a criar o programa

Boa noite pessoal,

Venho lembrar para vocês a dica básica que sempre falo em sala de aula e coloco no quadro, que é fazer um ESBOÇO (algoritmo) do que seria a solução do problema proposto.

Esse esboço do algoritmo deve ser feito lembrando das estruturas (sequencial, condiciaonal e as de repetição) é um esboço do que vai ser o programa.

Exemplo não computacional:

Algoritmo AtravessarRua
   Olhar para a direita
   Olhar para a esquerda
   Se estiver vindo algum veículo (carro, moto, bicicleta) de algum lado
      Não atravesse
   Senão
      Atravesse
   FimSe
FimAlgoritmo


Para ilustrar isso, coloco abaixo 3 exemplos mais "computacionais", cada um tendo algo parecido ou sendo uma evolução do anterior:

Exemplo 1: Fazer um programa para listar os números pares de 1 a 100:

Para num de 1 ate 100
  Se o número for par (resto da divisão de num por 2 = 0)
    imprime o numero
FimPara


Exemplo 2: Fazer um programa para pedir números e somar esses números. Quando o usuário digitar zero o programa deve parar e mostrar o total.

Zerar o total
Repita
  Pede para o usuário digitar o numero
  acumula esse numero digitado no total (total=total+numero)
Até que numero=0
Mostra o total


Exemplo 3 (variação do exemplo 2): Fazer um programa para pedir números até que o usuário digite zero, quando o programa deve parar e mostrar quantos números pares e quanos numeros impares o usuario digitou

Zerar o total de pares
Zerar o total de impares
Repita
  Pede para o usuário digitar o numero
  Se numero for par (resto da divisão de num por 2 = 0)
    incrementa total de pares
  Senao Se numero não for zero
    incrementa total de impares
  FimSe
Até que numero=0
Mostra o total de pares
Mostra o total de impares

quarta-feira, 12 de dezembro de 2018

Estudo e atividades sobre Programação Orientada a Objetos


Atividades das aulas dos dias 12, 13 e 14/12/2018:
Respostas:




quinta-feira, 22 de novembro de 2018

Exercícios avaliativos JAVA (respostas)

5a):

package exemplosJavaAulas;
import java.util.Scanner;

public class exemploWhile {
public static void main(String[] args) {
float n=1,soma=0;
int quant=0;
Scanner ler=new Scanner(System.in);
do {
System.out.printf("Digite um numero (zero=fim):");
n=ler.nextFloat();
soma+=n;
if(n!=0)
    quant++;   // contar numeros digitados
//quant=quant + (n!=0 ? 1 : 0);
} while (n!=0);
System.out.printf("A soma dos numeros digitados é: %f\n",soma);
System.out.printf("A média dos numeros digitados é: %f\n",soma/quant);
}
}

sexta-feira, 16 de novembro de 2018

Programação Orientada a Objetos 2018.2 (Téc.Desenvolvimento de Sistemas)

Material de aulas da disciplina Programação Orientada a Objetos, turma Desenvolvimento de Sistemas Subsequente.

OBS: Para fazer o download, clique nos links abaixo e depois no botão "Download" que aparece abaixo do slide.


Material adicional:

Programação Orientada a Objeros - Exercícios Java 16/11/2018


1) Crie um programa para calcular a área de um triângulo, sabendo que

       base x altura
área = -------------
            2

2) Crie programa para perguntar a idade de uma pessoa e, conforme a idade, mostrar mensagens na tela dizendo se ela já pode votar e se já pode tirar carteira de motorista

3) Crie um programa que imprima todos os números de 150 a 300, separados por vírgula ou um abaixo do outro

4) Faça um programa que liste os múltiplos de 3 entre 1 e 100

5.a) (já resolvido em sala de aula) aça um programa para calcular soma e média de números: o programa deve solicitar números e ir acumulando a soma e contagem. Quando o usuário digitar o número 0 (zero) o programa deve encerrar e mostrar o resultado da soma e média dos números digitados.

5.b)  Crie um programa para o "JOGO DO ADIVINHA NÚMERO", que é um jogo para ser jogado entre duas pessoas. O programa deve pedir um número inteiro diferente de zer que um dos jogadores digita e o outro jogador deve adivinhar Após o primeiro jogador digitar o número a ser adivinhado, o programa deve limpar a tela e ficar pedindo o palpite até que o outro jogador acerte o número ou desista digitando 0 (zero) como palpite. Deve também ficar dando dicas como "Mais!" ou "Menos!", conforme o número correto seja maior ou menor que o palpite digitado, respectivamente, e também totalizar a quantidade de tentativas feitas para adivinhar. Se o jogador acertar, mostrar "Parabéns, você acertou em XX tentativas!"

sexta-feira, 9 de novembro de 2018

Programação Orientada a Objetos - exercícios Java 09/11/2018

Fatorial:


package estudoJava;

import java.util.Scanner;

public class fatorial {

 public static void main(String[] args) {
  int num,c,fatorial;
  Scanner ler=new Scanner(System.in);
  // obter os valores de entrada:
  System.out.println("Cálculo do fatorial de um número");
  System.out.print("Digite o número: ");
  num=ler.nextInt();
  // em ordem crescente:
  fatorial=1;
  System.out.printf("%d ", fatorial);
  for (c=2;c<=num;c++) {
    System.out.printf("* %d ", c);
    fatorial=fatorial*c;
  }
  System.out.printf(" = %d",fatorial);
  // em ordem decrescente
  fatorial=num;
  System.out.printf("\n%d ", fatorial);
  for (c=num-1;c>=1;c--) {
    System.out.printf("* %d ", c);
    fatorial=fatorial*c;
  }
  System.out.printf(" = %d",fatorial);
 }
}

OBS: Você pode fazer contagem com o comando FOR e com o comando WHILE, porém o FOR é mais adequado para repetição contada.

Exemplo: contar de 1 a 10 em ordem crescente:


// com FOR:
for(c=1;c<=10;c++)
  System.out.println(c);

// com WHILE:
c=1;
while(c<=10) {
  System.out.println(c);
  c++;
}



EXERCÍCIOS SUGERIDOS: faça programas, usando FOR e WHILE para:

  • Contar de 1 a 100 em ordem crescente;
  • Contar de 100 a 1 em ordem decrescente;
  • Contar de 2 a 100 em ordem crescente, de 2 em 2.
  • Contar de 100 a 2 em ordem decrescente de 2 em 2;



quinta-feira, 8 de novembro de 2018

Programação Orientada a Objetos: Exercícios em Java 23/10/2018

/*
 * Calcular a soma dos números ímpares entre um intervalo informado
 */
package estudoJava;

import java.util.Scanner;

public class SomaImpares {
 public static void main(String[] args) {
  int vinicial,vfinal,c,soma;
  Scanner ler=new Scanner(System.in);
  // obter os valores de entrada:
  System.out.println("Soma números ímpares entre dois números");
  System.out.print("Digite o valor inicial: ");
  vinicial=ler.nextInt();
  System.out.print("Digite o valor final: ");
  vfinal=ler.nextInt();
  soma=0;
  for (c=vinicial;c<=vfinal;c++) {
   if(c % 2 != 0) {  // se o resto da divisão por 2 não for zeero
    System.out.printf("+ %d ", c);
    soma=soma+c;
   }
  }
  System.out.printf("\nA soma é: %d", soma);
 }
}

quinta-feira, 18 de outubro de 2018

Programação Orientada a Objetos: Exercícios em Java - 18, 19 e 23/10/2018

Desenvolva a solução dos problemas abaixo usando a Linguagem Java e o Eclipes:

Lista de exercícios: estruturas sequenciais, condicionais e de repetição


Material de apoio, se necessário:

Guia prático para criar algoritmos

Guia prático para a tradução de algoritmos para uma LP


RESPOSTAS:

ESTRUTURAS SEQUENCIAIS:

1) Área do retangulo:

package estudoJava;

import java.util.Scanner;

public class AreaRetangulo {

public static void main(String[] args) {
// TODO Auto-generated method stub
   // declaração de variáveis:
float base, altura, area;
  Scanner ler=new Scanner(System.in);
   // obter os valores de entrada:
  System.out.println("Digite o valor da base: ");
  base=ler.nextFloat();
  
  System.out.println("Digite o valor da altura: ");
  altura=ler.nextFloat();    // processamento:
   area=base*altura;
   // resultados:
   System.out.printf("Área= %f\n",area);
}


}


2) Troca valores de variáeis:

package estudoJava;

public class TrocaVariaveis {
public static void main(String[] args) {
int a,b,x;
a=10;
b=20;
System.out.printf("ANTES: a=%d, b=%d\n",a,b);
x=a;
a=b;
b=x;
System.out.printf("DEPOIS: a=%d, b=%d",a,b);
}
}

3) Equação do segundo grau:

package estudoJava;

import java.util.Scanner;

public class EquacaoSegundoGrau {
public static void main(String[] args) {
// declaração de variáveis:
float a,b,c,delta,x1,x2;
Scanner ler=new Scanner(System.in);
// obter os valores de entrada:
System.out.println("Digite o valor dr a: ");
a=ler.nextFloat();
System.out.println("Digite o valor de b: ");
b=ler.nextFloat();
System.out.println("Digite o valor de c: ");
c=ler.nextFloat();
// processamento:
delta=(float)Math.pow(b,2)-4*a*c;  // ou b*b*4*a*c
x1=(float)(-b + Math.sqrt(delta))/2*a;
x2=(float)(-b - Math.sqrt(delta))/2*a;
// resultados:
System.out.printf("Delta = %3.2f\n",delta);
System.out.printf("x1 = %f\n",x1);
System.out.printf("x2 = %f\n",x2);
}
}

---------------  23/10/2018:

4) Custo com combustível:

package estudoJava;



import java.util.Scanner;


public class CustoCombustivel {
public static void main(String[] args) {
// declaração de variáveis:
float precolitro,distancia,kml,custo;   ;
Scanner ler=new Scanner(System.in);
// obter os valores de entrada:
System.out.println("Programa para calcular custo de viagem");
System.out.print("Qual o preço do litro de combustivel (R$)? ");
precolitro=ler.nextFloat();
System.out.print("Qual a distância da viagem? ");
distancia=ler.nextFloat();
System.out.println("Quantos km o veículo percorre com 1 litro?");
kml=ler.nextFloat();
// processamento:
custo=precolitro*distancia/kml;
// resultados:
System.out.printf("O custro da viagem será R$ %f\n",custo);
}
}



ESTRUTURAS CONDICIONAIS:

1 e 2) Testar se um número é positivo, negativo ou zero:

package estudoJava;

import java.util.Scanner;

public class NumeroPositivoOuNegativo {
public static void main(String[] args) {
   int num;
   Scanner ler = new Scanner(System.in);
   // entrada de dados:
   System.out.println("Teste de número positivo ou negativo");
   System.out.print("Digite um número:");
   num = ler.nextInt();
   if(num<0)
   System.out.println("Número negativo");
   if (num>0)
   System.out.println("Número positivo");
   if (num==0)
   System.out.println("Zero");
        }
}


OU:
package estudoJava;

import java.util.Scanner;

public class NumeroPositivoOuNegativo {
public static void main(String[] args) {
   int num;
   Scanner ler = new Scanner(System.in);
   // entrada de dados:
   System.out.println("Teste de número positivo ou negativo");
   System.out.print("Digite um número:");
   num = ler.nextInt();
   if(num<0)
    System.out.println("Número negativo");
       else if (num>0)
    System.out.println("Número positivo");
       else
    System.out.println("Zero");
        }
}


3) Testar se um triângulo é válido e dizer o tipo de triângulo:


package estudoJava;

import java.util.Scanner;

public class TesteTriangulo {
public static void main(String[] args) {
// declaração de variáveis:
float a,b,c;
Scanner ler=new Scanner(System.in);
// obter os valores de entrada:
System.out.println("Testa a validade e tipo do triângulo");
System.out.print("Digite o tamanho do lado a: ");
a=ler.nextFloat();
System.out.print("Digite o tamanho do lado b: ");
b=ler.nextFloat();
System.out.print("Digite o tamanho do lado c: ");
c=ler.nextFloat();
// teste: a soma de dois lados não pode ser menor que a do terceiro lado)
if (a+b<=c || a+c<=b || c+b<=a)
System.out.println("Triângulo inválido");
else  {
System.out.println("Triângulo válido");
if (a==b && b==c)
System.out.println("Triângulo EQUILÁTERO");
else if ( (a==b && c!=a) || (a==c && b!=a) || (b==c && a!=b) )
System.out.println("Triângulo ISÓSCELES");
else
System.out.println("Triângulo ESCALENO");
}

}



ESTRUTURAS DE REPETIÇÃO:

1) Fazer uma multiplicação usando somas repetidas:

package estudoJava;
import java.util.Scanner;

public class MultiplicaSomando {
public static void main(String[] args) {
int a,b,c,res;
Scanner ler=new Scanner(System.in);
// obter os valores de entrada:
System.out.println("Multiplicação com somas repetidas");
System.out.print("Digite o valor de a: ");
a=ler.nextInt();
System.out.print("Digite o valor de b: ");
b=ler.nextInt();
res=0;
for (c=1;c<=a;c++) {
System.out.printf("%d: + %d\n", c, b);
res=res+b;
}
System.out.printf("%d x %d = %d", a,b,res);
}
}

2) Solicitar uma determinada quantidade de números e calcular a soma e média entre eles:

package estudoJava;
import java.util.Scanner;

public class SomaEMediadeNumeros {
public static void main(String[] args) {
int c,quant;
float num,soma,media;
Scanner ler=new Scanner(System.in);
// obter os valores de entrada:
System.out.println("Programa para soma e média de números");
System.out.print("Quantos números você quer digitar? ");
quant=ler.nextInt();
soma=0;
for(c=1;c<=quant;c++) {
System.out.printf("Digite o %dº número: ",c);
num=ler.nextFloat();
soma=soma+num;
}
media=soma/quant;
System.out.printf("A soma  é: %f\n",soma);
System.out.printf("A média é: %f",media);
}


}

sexta-feira, 28 de setembro de 2018

Programação OO - Exemplos Java de 28/09/2018

Balanço Trimestral, versão inicial, com os valores fixos no código-fonte:

public class BalancoTrimestral {
public static void main(String args[]) {
float gastosJan,gastosFev, gastosMar;
float gastosTri1;

gastosJan=15000;
gastosFev=23000;
gastosMar=17000;

gastosTri1=gastosJan+gastosFev+gastosMar;
System.out.println("Gasto Total: "+gastosTri1);
System.out.println("Gasto médio: "+gastosTri1/3);
}

}

BalancoTrimestral versão com entrada de dados usando a classe Scanner:

import java.util.Scanner;

public class BalancoTrimestral2 {
public static void main(String args[]) {
float gastosJan,gastosFev, gastosMar;
float gastosTri1;
Scanner ler=new Scanner(System.in);
System.out.println("Gastos de Janeiro: ");
gastosJan=ler.nextFloat();
System.out.println("Gastos de Fevereiro: ");
gastosFev=ler.nextFloat();

System.out.println("Gastos de Março: ");
gastosMar=ler.nextFloat();
gastosTri1=gastosJan+gastosFev+gastosMar;
System.out.println("Gasto Total: "+gastosTri1);
System.out.println("Gasto médio: "+gastosTri1/3);
}

}