Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Crie uma classe Televisao e uma classe ControleRemoto que pode controlar o volume e trocar os canais da televisão - Desafio de Programação Resolvido em Java

Quantidade de visualizações: 547 vezes
Pergunta/Tarefa:

Este exercício deve ser feito usando Programação Orientada a Objetos em Java.

Crie uma classe Televisao e uma classe ControleRemoto que pode controlar o volume e trocar os canais da televisão. O controle remoto permite:

1) aumentar ou diminuir a potência do volume de som em uma unidade de cada vez;
2) aumentar e diminuir o número do canal em uma unidade;
3) trocar para um canal indicado;
4) consultar o valor do volume de som e o canal selecionado.

O volume da TV deverá variar entre 0 (mudo) e 10 (máximo). Os canais deverão variar de 1 até 20. Exiba mensagens caso os valores informados caiam fora dessas faixas.

Seu código deverá mostrar um menu para as opções acima.

Sua saída deverá ser parecida com:

---------- OPÇÕES DO CONTROLE REMOTO ----------

1. Aumentar o Volume
2. Diminuir o Volume
3. Aumentar o Canal
4. Diminuir o Canal
5. Trocar Para o Canal Indicado
6. Consultar o Volume e Canal Selecionado
7. Sair
Sua opção: 6

O volume atual é: 5
O canal atual é: 1
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

Código para a classe Televisao.java:

/*
  Esta é a classe Televisao. Ela contém duas variáveis de
  instância: volume e canal
*/

package estudos;

public class Televisao {
  private int volume;
  private int canal;

  // construtor padrão que define o volume como 5 e o canal 1
  public Televisao() {
    this.volume = 5;
    this.canal = 1;
......


Código para a classe ControleRemoto.java:

/*
  Esta é a classe ControleRemoto que permitirá controlar o volume
  e os canais da TV
 */
package estudos;

import java.util.Scanner;

public class ControleRemoto {

  Televisao tv; // uma referência a um objeto da classe Televisao

  // vamos usar um objeto da classe Scanner para entrada do usuário
  Scanner entrada = new Scanner(System.in);

  // construtor padrão da classe ControleRemoto
  public ControleRemoto() {
    // instanciamos um objeto da classe Televisao
    tv = new Televisao();
  }

  // mostra o menu de opções
  public void mostrarMenu() {
    // um laço infinito para mostrar as opções do menu
    while (true) {
      System.out.println("\n---------- OPÇÕES DO CONTROLE REMOTO ----------\n");
      System.out.println("1. Aumentar o Volume");
      System.out.println("2. Diminuir o Volume");
      System.out.println("3. Aumentar o Canal");
      System.out.println("4. Diminuir o Canal");
      System.out.println("5. Trocar Para o Canal Indicado");
      System.out.println("6. Consultar o Volume e Canal Selecionado");
      System.out.println("7. Sair");
      System.out.print("Sua opção: ");

      // lê a opção do usuário
      int opcao = Integer.parseInt(entrada.nextLine());

      // uma estrutura switch para tratar as opções do menu
      switch (opcao) {
        case 1: // aumenta o volume em uma unidade
          if(tv.getVolume() < 10){
            System.out.println("\nO volume da TV foi aumentado em uma unidade.\n");
            tv.setVolume(tv.getVolume() + 1);
          }
          else{
            System.out.println("\nO volume da TV já está no máximo.\n");
          }
          break;
          
        case 2: // diminui o volume em uma unidade
          if(tv.getVolume() > 0){
            System.out.println("\nO volume da TV foi diminuido em uma unidade.\n");
......


Código para a classe Principal.java:

package estudos;

public class Principal {
  public static void main(String[] args) {
    // cria um novo objeto da classe ControleRemoto
......


Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Win32 API (Windows API) ::: Processos

Como usar o Delphi para verificar se um determinado processo do Windows está sendo executado

Quantidade de visualizações: 19109 vezes
Em algumas situações precisamos verificar se um determinado processo está sendo executado, ou seja, gostaríamos de saber se o executável "programa.exe" está carregado na memória e efetuar alguma tarefa se o teste resultar satisfatório. Nesta dica eu mostro como isso pode ser feito.

O primeiro passo é acrescentar a unit TlHelp32 na cláusula uses do seu formulário. Esta unit contém algumas funções, tipos e definições úteis para se trabalhar com processos acessando a API do Windows.

Uma vez importada a unit TlHelp32, coloque a função abaixo na seção implementation de seu formulário:

// função personalizada que permite verificar se um determinado
// processo está sendo executado
function isProcessRunning(exeFileName: string): Boolean;
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
......


Agora, para testar a função, coloque o código abaixo no evento Click de um botão:

procedure TForm3.Button1Click(Sender: TObject);
begin
  if isProcessRunning('notepad.exe') then
    ShowMessage('O processo está sendo executado')
......


Aqui nós estamos testando se o processo "notepad.exe" está sendo executado. Uma melhoria neste código seria listar todos os processos em execução ou listar as cópias em execução de um mesmo processo.


Python ::: Dicas & Truques ::: Lista (List)

Apostila de Python - Como ordenar uma lista de inteiros em ordem crescente ou decrescente usando o método sort() do objeto List do Python

Quantidade de visualizações: 17628 vezes
Nesta dica veremos como usar a função sort() do objeto List da linguagem Python para ordenar um vetor de inteiros em ordem crescente ou decrescente. Veja que, para ordenar o vetor em ordem descrecente, tudo que fiz foi fornecer o valor "reverse=True" para a função sort().

Veja o código completo para o exemplo:

def main():
  # cria uma lista de inteiros
  valores = [2, 5, 12, 2, 3, 32, 18]
 
  # exibe a lista na ordem original
  print(valores)
 
  # ordena a lista em ordem crescente
  valores.sort()
  # exibe a lista ordenada em ordem crescente
......


Ao executar este código Python nós teremos o seguinte resultado:

[2, 5, 12, 2, 3, 32, 18]
[2, 2, 3, 5, 12, 18, 32]
[32, 18, 12, 5, 3, 2, 2]


C# ::: Namespace System.Drawing ::: Graphics

C# Windows Forms - Como passar um objeto da classe Graphics como argumento para um método e usá-lo para desenhar na superfície do formulário

Quantidade de visualizações: 5596 vezes
Em algumas situações gostaríamos de escrever um método que recebe um objeto da classe Graphics como argumento e usar este objeto para alguma tarefa, por exemplo, desenhar na superfície do formulário. Nesta dica eu mostro como isso é possível. Comece escrevendo o seguinte método:

// um método que recebe um objeto da classe Graphics
private void desenhar(ref Graphics g){
  // vamos desenhar uma linha horizontal de 300 pixels na
  // cor preta e espessura de 1 pixel
......


Note que, na definição do parâmetro do método nós usamos a palavra-chave ref. Isso foi necessário porque queremos que o objeto Graphics seja passado por referência, uma vez que o estamos liberando dentro do corpo do método com uma chamada ao método Dispose().

Veja agora como obter o objeto Graphics relacionado ao formulário atual e passá-lo ao método desenhar():

private void button1_Click_1(object sender, EventArgs e){
  // vamos obter o objeto Graphics relacionado ao formulário atual
  Graphics graphics = this.CreateGraphics();
......



C# ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar a instrução switch do C#

Quantidade de visualizações: 26110 vezes
A instrução switch da linguagem C# é útil quando queremos testar condições nas quais o uso de if..else if..else poderia ser considerado excessivo ou não aplicável. Esta instrução recebe uma variável como argumento e testa seu valor por meio de cláusulas case.

Veja o exemplo:

static void Main(string[] args){
  Console.Write("Digite um número inteiro: ");
  int valor = int.Parse(Console.ReadLine());

  switch(valor){
    case 1:
      Console.WriteLine("Você digitou o valor 1");
      break;
    case 2:
      Console.WriteLine("Você digitou o valor 2");
......


Note que a instrução switch possui uma cláusula default para os casos nos quais o valor da variável não estiver presente em nenhuma das cláusulas case. Observe também o uso da instrução break para evitar a avaliação das cláusulas seguintes àquela na qual o valor desejado foi encontrado.

Qualquer objeto, valor ou tipo referência que puder ser convertido em um valor inteiro, caractere, enumeração (enum) ou string pode ser usado como argumento para uma instrução switch. Veja:

static void Main(string[] args){
  Console.Write("Digite uma letra: ");
  char letra = Char.Parse(Console.ReadLine().ToLower());

  switch(letra){
    case "a":
      Console.WriteLine("Você digitou a letra a");
      break;
    case "b":
      Console.WriteLine("Você digitou a letra b");
......


É possível haver cláusulas case vazias. Neste caso, o bloco de instruções é executado caso o valor da variável seja encontrado em qualquer uma das cláusulas. Veja:

static void Main(string[] args){
  Console.Write("Digite uma letra: ");
  char letra = Char.Parse(Console.ReadLine().ToLower());

  switch(letra){
    case "a":
    case "b":
      Console.WriteLine("Você digitou a ou b");
      break;
    case "c":
    case "d":
      Console.WriteLine("Você digitou c ou d");
......



Python ::: Dicas & Truques ::: Matemática e Estatística

Como testar se um número é par ou ímpar em Python usando o operador de módulo - Python para Matemática

Quantidade de visualizações: 16505 vezes
O operador de módulo do Python nos permite obter o resto de uma divisão inteira, e podemos tirar proveito desse operador para verificarmos se um determinado número inteiro é par ou ímpar. Veja o exemplo:

# função principal do programa
def main():
  # vamos pedir para o usuário informar um número
  numero = int(input("Informe um número: "))
 
  # o número é par?
  if numero % 2 == 0:
......


Ao executar este código Python nós teremos o seguinte resultado:

Informe um número: 8
O numero informado é par


Desafios, Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 10 usuários muito felizes estudando em nosso site.